我正在用PHP和HTML創建上傳腳本,可以有任意數量的文件上傳。我循環並回顯任意數量的文件上傳,並使用循環命名每個文件「fileField1」,「fileField2」等。
現在我想檢索該字段中的文件的名稱。我可以像這樣在另一個循環中使用變量嗎?
$fileField = 'fileField'.$i;
$fileName = $_FILES[$fileField]['name']; // Name of file
這是包含在循環內,這將工作嗎?
我相信我遇到一個錯誤......
$ I的增加每次一($ I ++)
編輯
請注意,我永遠達不到發表談話。 ..
這裏是整個循環:
$i = 1;
while ($i <= $numberOfFields) {
$fileField = 'fileField'.$i;
$titleId = 'title'.$i;
$genreId = 'genre'.$i;
$fileName = $_FILES[$fileField]['name']; // Name of file
if($fileName !=""){
$randNum = rand(1000000000,9999999999); //Generate random number
$newFileName = $fileName."-".$randNum; //Rename file
if (file_exists($baseUrl."images/".$newFileName)){
echo $newFileName." already exists. ";
}else{
if(isset($_POST[$titleId]) && !empty($_POST[$titleId])){
// Assign url, title, genre
$url = 'images/'.$newFileName;
$title = $_POST[$titleId];
$genre = $_POST[$genreId];
// Execute final query and upload
$sql = "INSERT INTO images (url,title,genre) VALUES (:url,:title,:genre)";
$q = $conn->prepare($sql);
$q->execute(array(':url'=>$url,
':title'=>$title,
':genre'=>$genre));
if(copy($_FILES['fileField']['tmp_name'],'../images/'.$newFileName)) {
$NOTICE = 'File successfully uploaded!';
// I AM NEVER REACHING THIS NOTICE WHICH IS ECHOED LATER ON IN THE CODE
}
}else{
$NOTICE = "Please fill out the title for picture ".$i;
break;
}
}
}else{
$NOTICE = "Please select a file to upload in slot ".$i;
break;
}
$i++;
}
是什麼讓你「相信你會遇到錯誤」?我建議你在這裏發佈更多的代碼,我現在可以看到的可能可以工作。 – jtheman
爲什麼不先嚐試一下,問問題 – samayo
我加了整個循環......我一般都有問題,所有的數據都上傳到MySQL數據庫,但是文件從來沒有到達目的地文件夾 @Eritrea ...我沒有嘗試過,並試圖解決它。我的主要問題是,我可以但在[]這樣的變量... – Skovy