0

我正在尝试将多张照片上传到我的服务器,我让它部分工作,它会做一张照片,但它不会做每一张通过的照片。

的HTML:

 <form>
 <input type="file" name="uploadFile"  class="upload" multiple="true" onChange="galleryUpload(this.form,'ajax/add/gallery_photos.php'); return false;"/>
</form>

PHP:

$photos = array();

$i = 0;
foreach($_FILES as $file) 
{

$fileArr = explode("." , $file["name"]);
$ext = strtolower($fileArr[count($fileArr)-1]);

$allowed = array("jpg", "jpeg", "png", "gif", "bmp");

if (in_array($ext, $allowed)){

$source = $file['tmp_name'][$i++];

$path = "../../photos/";
$filename = uniqid();


//Crop photo etc..


if(move_uploaded_file($_FILES['uploadFile']['tmp_name'], "$path/$filename.jpg"))
{

$photos[] = array(
'photoID' => $photoID,
'URL' => $filename
);

}

}

}

echo json_encode($photos);

如您所见,我还返回上传照片的 json 数据,因此我可以使用 jQuery 管理它们(这是一种“ajax”上传表单,因此页面不会重新加载)所以我需要返回该数据。所以它需要返回数据数组。尽管只有一个文件,但一切似乎都运行良好,但即使我选择多张照片,它也只会做一个。

4

1 回答 1

1

更改您的 name 属性在 input 元素上:

name="uploadFile"

到:

name="uploadFile[]"

只有一个文件被插入到 $_FILES 数组中

于 2012-08-25T20:57:28.897 回答