如何解决如何将多个文件附加到 dropzone.js 中的 formdata
我的应用程序由一个 from 组成,其中包含一个可选的 dropzone 图像选择和一些文本。我已经知道如何发送 dropzone 文件和文本,但我不知道如何让它发送多个文件。 我的 angularJs 控制器:
$(document).ready(function(){
$("#food-images").dropzone({
dictDefaultMessage: "Food Images,multiple or single",clickable: true,url: "#",maxFiles: 10,maxFilesize: 3,addRemoveLinks: true,uploadMultiple: true,parallelUploads:10,init: function(){
let fd = new FormData();
var mydropzone = this;
mydropzone.on("sending",function(file){
fd.append("image",file);
})
$scope.addItem = ()=>{
console.log(fd);
let name = $scope.name;
let description = $scope.description;
let cat = $scope.cat;
let price = $scope.price;
let postfields = JSON.stringify({"name":name,"description":description,"cat":cat,"price":price});
let file = mydropzone.files;
fd.append("data",postfields);
fd.append("image",file);
let api = (window.location.origin)+"/adddish";
$http({
method:"post",url:api,data:fd,headers: {"Content-Type":undefined}
}).then((rez)=>{
console.log(rez);
})
}
}
});
})
这会正确发送一个文件和我的文本,我可以从我的 PHP 控制器访问:
<?php
class AddDish{
public function __construct()
{
$this->conn = (new Database)->connect();
$this->post = $_POST["data"];
$this->files = @$_FILES;
}
public function doAddDish(){
echo json_encode($this->files);
}
}
$api = new AddDish();
$api->doAddDish();
它只返回一个文件,我如何附加多个?
解决方法
我找到了一个修复程序,对于那些以后可能需要它的人,dropzone 有一个名为 uploadmultiple 的方法。
let fd = new FormData();
var mydropzone = this;
mydropzone.on("sendingmultiple",function(file){
for(var i=0;i<=files.length;i++){
fd.append("image[]",file[i])
}
// console.log(files);
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。