我正在尝试将多张照片上传到我的服务器,我让它部分正常工作,它会拍一张照片,但它并没有拍完每张照片。
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”上传表单,因此页面不会重新加载)所以我需要返回数据。所以它需要返回数据数组。只用一个文件,一切似乎都运行正常,但即使我选择了多张照片,它也只会做一个。
答案 0 :(得分:1)
更改您的名称属性在输入元素上:
name="uploadFile"
要:
name="uploadFile[]"
只有一个文件被插入$ _FILES数组