我知道這裏已經有不少話題了,而且我已經閱讀了其中的很多內容,但都無濟於事。我有一個表單用於上傳帶有說明的多個文件。如果用戶需要多個上傳/描述字段,他們可以點擊鏈接通過jquery添加另一個。該窗體的代碼是:php/jquery多文件上傳
<form action="adm.php?mode=upload" method="post">
<input type="hidden" name="article_id" value="<?php echo $article_id; ?>" />
<input type="hidden" name="new_path" value="<?php echo $new_path; ?>" />
<div id="files">
<div id="file" class="row">
<input type="file" name="file[]" id="file" /><br />
Description:<br />
<textarea name="desc[]" cols="50" rows="5"></textarea>
</div>
</div>
<div>
<input type="submit" name="submit" value="Submit" />
</div>
</form>
<a href="#" id="add_upload">Add File</a>
點擊add_upload時
<div id="file" class="row">
<input type="file" name="file[]" id="file" /><br />
Description:<br />
<textarea name="desc[]" cols="50" rows="5"></textarea>
</div>
的克隆被附加到文件DIV。 ?
我相信這是根據php.net的<input type="file" name="file[]" id="file" />
正確使用,然而在adm.php模式聽衆腳本=上傳從來沒有在提交收到$ _FILES數組:
case 'upload' :
$path = request_var('new_path', '');
$article_id = request_var('article_id', 0);
$error = array();
$messages = array();
if(isset($_FILES['file']['tmp_name']))
{
// Number of uploaded files
$num_files = count($_FILES['file']['tmp_name']);
//create the directory if it doesn't exist already
if(!is_dir($path))
{
mkdir($path);
}
/** loop through the array of files ***/
for($i=0; $i < $num_files;$i++)
{
// check if there is a file in the array
if(!is_uploaded_file($_FILES['file']['tmp_name'][$i]))
{
$messages[] = 'No file uploaded';
}
else
{
// copy the file to the specified dir
if(@copy($_FILES['file']['tmp_name'][$i],$path.'/'.$_FILES['file']['name'][$i]))
{
$messages[] = $_FILES['file']['name'][$i].' uploaded';
}
else
{
/*** an error message ***/
$messages[] = 'Uploading '.$_FILES['file']['name'][$i].' Failed';
}
}
}
}
else
{
$messages[] = 'No files set for upload??';
}
$err_msg = $messages;
include($root_path.'pages/header.php');
include($root_path.'pages/error.php');
include($root_path.'pages/column.php');
include($root_path.'pages/footer.php');
exit;
休息;
我總是得到「沒有文件設置爲上傳?」錯誤,因爲文件沒有被傳輸。所有其他值都通過POST發送並且沒有問題地接收。我究竟做錯了什麼?
var_dump你的$ _POST和$ _FILE變量,看看裏面有什麼。 – profitphp
var_dump:'array(5){[「article_id」] => string(2)「24」[「new_path」] => string(30)「images/gallery/family_outings /」[「file」] = > array(2){[0] => string(12)「DSC01121.jpg」[1] => string(12)「DSC01126.jpg」} [「desc」] => array(2){[ => string(5)「test1」[1] => string(5)「test2」} [「submit」] => string(6)「Submit」} array {0} { – chaoskreator
數組在最後是$ _FILES – chaoskreator