Codice: Seleziona tutto
<?php
$up_path = "upload";
echo '<html>
<title>Upload file</title>
<body>';
function num_upload() {
echo '<form action="upload.php" method="post">
How many images do you want to upload?
<input type="text" name="num">
<input type="submit" value="Submit">
</form>';
}
function multi_upload($num) {
echo '<form action="upload.php" enctype="multipart/form-data" method="post">
<table border="0" width="400" cellspacing="0" cellpadding="0" align=center>';
for ($i = 1; $i <= $num; $i++) {
echo '<tr><td>'."Image ".$i.": ".'</td>
<td><input type="file" name="image[]"></td></tr>
<tr><td>'."Desc. ".'</td>
<td><input type="text" name="desc[]"></td></tr>';
}
echo '<tr><td colspan=2 align=center>
<input type=submit value="Add Image(s)"></td></tr>
</table></form>';
}
function upload($up_path) {
$j = 1;
while (list($key,$value) = each($_FILES['image']['name'])) {
print "1\n";
//list($desc_k,$desc_v) = each($_REQUEST['desc']['name']);
echo "2\n";
if (! empty($value)) {
echo $value."\n";
$filename = $value;
$filename = str_replace(" ","_",$filename);
$filename = str_replace("'","",$filename);
echo $filename."\n";
$path = $up_path."/".$filename;
if (file_exists($path)) {
echo "The file ".$filename." already exists.\n";
break;
}
echo $path."\n";
if (copy($_FILES['image']['tmp_name'][$key],$path))
echo "File ".$j." caricato\n";
else {
echo "Errore nella copia";
}
if (chmod($path,0660))
echo "File ".$j." chmod'd\n";
if (! empty($desc[$j])) {
$desc_file = fopen("$path/.pics_desc","a");
$imgdesc = $desc_v;
$imgdesc = str_replace("\n"," ",$imgdesc);
$write = $filename.";".$desc_v."\n";
fwrite($desc_file,$write);
fclose();
}
$j++;
}
}
}
num_upload();
if (! empty($_REQUEST['num'])) {
echo'<br /><p>';
multi_upload($_REQUEST['num']);
echo '</p>';
}
if (! empty($_FILES['image'])) {
$up_path = "upload";
echo $_FILES['image']."\n";
echo '<br /><p>';
upload($up_path);
echo '</p>';
}
echo '</body></html>';
?>
2) Per ché dentro la funzione "upload()" non posso usare la variabile "$up_path" che ho dichiarato inizialmente?
3) Perché non funziona, dicendomi "PHP Warning: copy() [<a href='function.copy'>function.copy</a>]: Filename cannot be empty in /var/www/htdocs/upload.php on line 49, referer: http://192.168.7.4/upload.php" (preso dal log di apache)? In pratica è come se nella "copy()" la variabile "$path" (che uso come path di destinazione, comprensivo del nome file) fosse vuota; peccato che la faccio stampare la riga prima e sono sicuro che ha il valore giusto .