我一直在修改這個php腳本,但它不會工作,它總是失敗。它設法創建文件夾,但無法將文件從臨時文件夾移動到正確的文件夾,函數move_uploaded_file始終返回false。這是代碼:用php腳本上傳多個文件
<?php
include 'connection.php';
include '../empty.html';
session_start();
if(isset($_FILES['filearray'])){
$name_array = $_FILES['filearray']['name'];
$tmp_name_array = $_FILES['filearray']['tmp_name'];
$type_array = $_FILES['filearray']['type'];
$size_array = $_FILES['filearray']['size'];
$error_array = $_FILES['filearray']['error'];
$titlealbum=$_POST['titoloalbum'];
$username=$_SESSION['username'];
$path="../users/".$username."/".$titlealbum."/";
echo $path;
mkdir($path,0777);
$total=count($tmp_name_array);
for($i=0; $i<$total; $i++){
$rightpath=$path.$name_array[$i];
if(move_uploaded_file($tmp_name_array[$i], $rightpath)){
echo $name_array[$i]." upload is complete<br>";
echo "upload completato";
} else {
echo "move_uploaded_file function failed for ".$name_array[$i]." into".$path."<br>";
}
}
}
else
echo "Files not found";
?>
這是HTML表單:
<form id="albumform" style="display:none" enctype="multipart/form-data" action="scripts/albumupload.php" multiple="multiple" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000000">
Name: <input name="titoloalbum" type="text" required><br><br>
Cover: <input name="userfile" type="file">
<br><br>Select your songs:<br />
<input name="filearray[]" type="file" value="10000000" /><br />
<input name="filearray[]" type="file" value="10000000"/><br />
<input name="filearray[]" type="file" value="10000000"/><br />
<input name="filearray[]" type="file" value="10000000"/><br />
<input type="submit" value="Send files" />
</form>
我知道,這種形式有點太爛了,但我不喜歡一個勁兒地「輸入」的多重選擇。謝謝諮詢
echo'$ tmp_name_array [$ i]'並檢查它返回的結果 – Saty
在每次迭代中回聲並檢查'$ tmp_name_array [$ i]'和'$ rightpath'的值。 –
'tmp_name array result: rightpath result:../users/test2/TEST/test.mp3'。正如你所看到的,tmp array_name是空的。 – frankj