我使用以下代码来使用dropzonejs:
$(".dropzone").dropzone({
url: "/ehr/postEHRFile" ,
addRemoveLinks: "dictRemoveFile" ,
maxFilesize: 5,
maxFiles: 5,
dictDefaultMessage: '<i class="fa fa-cloud-upload"></i> \
<span class="main-text"><img src="<?php echo URL."public/images/cloud.png"; ?>" style="width:70px;opacity:0.5;"> <br /> \
<span class="main-text"><b>Drop Files</b> to upload</span> <br /> \
<span class="sub-text">(or click)</span> \
',
dictResponseError: 'Server not Configured',
clickable: true,
headers: { "userid" : "<?php echo $this->user['id']; ?>" } ,
success: function (response) {
var x = JSON.parse(response.xhr.responseText);
if(x.error){
alert(x.message);
this.removeAllFiles();
}else{
if($("input[name='ehr_files']").val() == ''){
$("input[name='ehr_files']").val(x.path+':'+x.ftype+':'+x.fname);
}else{
$("input[name='ehr_files']").val($("input[name='ehr_files']").val()+','+x.path+':'+x.ftype+':'+x.fname);
}
}
},
removedfile: function(file) {
var _ref;
return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;
}
});
在success
中,我将文件详细信息分配到隐藏字段中,例如
ImagePath:ImageType:ImageName,ImagePath:ImageType:ImageName.......
等等。
我这样做是为了将所有文件详细信息保存在隐藏字段中(可能是多个文件,因此使用逗号分隔)并将使用这些文件稍后保存到数据库中。
当用户从dropzonejs面板中删除文件时,我还需要从隐藏字段中删除它的详细信息,以便它不会保存在数据库中。
问题:
1)我可以使用file.name
来获取该文件,我可以从隐藏字段中删除该记录,但文件名可能不是唯一的。
2)我也无法在成功功能中访问file
对象。如果有可能,我会添加一个唯一的ID来识别。
3)如果我能够获取文件索引,即第二个数字文件或第三个数字文件,我可以删除,但我不知道如何获取索引。
答案 0 :(得分:0)
经过几个小时的搜索并尝试了不同的概念,我终于解决了我的问题。 所以分享我更新的代码。
{{1}}