Salve,
mi spiace aprire l'ennesimo topic su questo tema.
Ma per ora non ne cavo piedi e mi occorre il vostro aiuto.
Premetto prima di postare il codice che in locale gli script girano ,
in locale su server LAMP con Ubuntu.
Codice PHP:
<?php session_start();
require ('../functions.php');
control_page($username,$pwd);
// pagina di inserimento nel database, dopo aver ricevuto i dati dal form di upload
echo "<link rel='stylesheet' type='text/css' href='../logstyle.css'>";
require_once ('up_functions.php');
connect_db($connection);
validate_upload();
if ($_FILES['fileUpload']['tmp_name'])
{
$fileName = $_FILES['fileUpload']['name'];
$tmpName = $_FILES['fileUpload']['tmp_name'];
$fileType = $_FILES['fileUpload']['type'];
$fileSize = $_FILES['fileUpload']['size'];
$uploadDir = "/image_upload/";
$filePath = $uploadDir.$fileName;
if (!get_magic_quotes_gpc)
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}
$query = "SELECT name,type,size,path FROM upload_lavori";
$result = mysql_query($query) or die ("errore! ".mysql_error());
while ($row = mysql_fetch_array($result))
{
if ($row['name'] == $fileName and $row['type'] == $fileType) die ("Il file esiste già, Torna alla pagina di <a href='index.php'>Upload</a>");
}
$fileName= str_replace( "_", "x", $fileName );
$fileName= str_replace("-", "x", $fileName );
$query_ins = "INSERT INTO upload_lavori (name,type,size,path)".
"VALUES('$fileName','$fileType','$fileSize','$filePath')";
mysql_query($query_ins) or die ('error: query failed '.mysql_error());
$inviato = file_exists($tmpName);
if ($inviato)
{
move_uploaded_file ($tmpName,$filePath ) or die ("Errore in fase di upload, file non caricato ");
?><script>location.replace ('download.php')</script><?php
}
}
?>
mentre download.php :
Codice PHP:
<?php session_start();
require ('../functions.php');
control_page($username,$pwd);
// pagina di download
if(isset($_GET['id']))
{
require_once ('up_functions.php');
connect_db($connection);
$id = $_GET['id'];
if (!is_numeric($id)) die ("C'è stato un errore, <a href='download.php'>riprova</a>");
$query = "SELECT name, size, type, path FROM $db_table1 WHERE id = '$id'";
$result = mysql_query($query) or die ('Errore fallita' .mysql_error());
list($name,$type,$size, $filepath) = mysql_fetch_array($result);
header("Content-type: Application/octet-stream");
header ("Content-Disposition: attachment; filename=$name");
header("Content-length: $size");
header("Content-type: $type");
readfile($filepath);
@mysql_close($connection);
exit;
}
?>
<html>
<head>
<title>Download File From File Server</title>
<meta http-equiv="Content-Type" content="image" charset="iso-8859-1">
<link rel="stylesheet" type="text/css" href="../logstyle.css">
</head>
<body>
<?php
include ('config.php');
include ('up_functions.php');
connect_db($connection);
$query = "SELECT id, name FROM $db_table1 ";
$result = mysql_query($query) or die('Errore, query fallita'. mysql_error());
if(mysql_num_rows($result) == 0)
{
echo "Il Database è vuoto! <br> Torna alla pagina di <a href = 'index.php'>Upload</a>";
}
else
{
$counter = 0;
while($row = mysql_fetch_array($result))
{
?>
<fieldset>
<fieldset>
<legend>Clicca sul nome per scaricare l'immagine originale</legend>
<p>
<?php
$counter++;
echo $counter;
?>
<a href="download.php?id=<?php echo $row["id"];?>" alt="download"><?php echo $row["name"];?></a>
</p>
<br>
<p>
<img src="download.php?id=<?php echo $row["id"]; ?>" width="210" height="350" border="no">
</p>
</fieldset>
<fieldset>
<legend>Puoi cancellare questa immagine</legend>
<form method="post" action="cancella.php?id=<?php echo $row["id"]; ?>"><input type="submit" value="cancella"></form>
</fieldset>
<fieldset>
<legend>Puoi sostituire questa immagine con un'altra a tua scelta</legend>
<form action="modifica.php?id=<?php echo $row["id"]; ?>" method="post" enctype="multipart/form-data">
<p>
<input type="file" name="fileUpload">
<input name="update_image" type="submit" value="cambia immagine">
</p>
</form>
</fieldset>
</fieldset>
<?php
}
}
?>
<br>
<hr>
Torna alla pagina di <a href = "index.php">Upload</a>
<a href= "../index.php">Home-Page</a>
</body>
</html>
Mi si blocca in upDat.php in questo punto :
Codice PHP:
$inviato = file_exists($tmpName);
if ($inviato)
{
move_uploaded_file ($tmpName,$filePath ) or die ("Errore in fase di upload, file non caricato ");
non effettua il move_uploaded_file e muore con die()...
In locale funziona perfettamente, ho pensato al classico errore di quando si cambia il path della cartella da uploadare dal proprio locale al server ma non credo di averlo sbagliato : ho messo una cartella dallo stesso nome "image_upload" , il path completo risulta :
$uploadDir = "/image_upload/";
$filePath = $uploadDir.$fileName;
... cosa non funziona?