【发布时间】:2020-05-07 12:50:59
【问题描述】:
我在服务器上重命名了我上传的文件,当我尝试通过 dropzone.js 删除我的图像时,该文件没有被删除,因为它被重命名了。
var myDropzone = new Dropzone("div#dropzoneFileUpload", {
addRemoveLinks: true,
url: baseUrl+"/img/upload/store",
params: {
_token: token,
},
success: function (data, textStatus, XmlHttpRequest){
},
removedfile: function(file) {
var name = file.upload.filename;
jQuery.ajax({
headers: {
'X-CSRF-TOKEN': jQuery('meta[name="_token"]').attr('content')
},
type: 'POST',
url: '{{ url("delete") }}',
data: {filename: name},
success: function (data){
console.log("File has been successfully removed!!");
},
error: function(e) {
console.log(e);
}});
var fileRef;
return (fileRef = file.previewElement) != null ?
fileRef.parentNode.removeChild(file.previewElement) : void 0;
},
});
【问题讨论】:
-
我假设您在服务器端重命名它?如果是这样,您可以在对上传的响应中发回新文件名,以便您可以使用它而不是默认文件名?有了这个,您可以从
success()方法中的data中获取新文件名 -
是的,我正在服务器上重命名,我尝试使用 return response()->json(['success'=>'200','imagesname'=>$image] 返回新名称);但我不知道我可以获取图像的旧名称并将其更改为新名称
-
你知道你也可以在上传之前直接在 Dropzone 中重命名文件吗?
-
是的,但我想从服务器重命名它
-
在成功方法中很好,您应该将上传的文件作为第一个参数(您当前拥有的数据)取回,第二个参数将是您发回的新名称(您目前有作为 textStatus)。有了这个,您可以循环 Dropzone 中的当前文件,根据您作为响应中的第一个参数返回的
file从列表中找到正确的文件,然后相应地更改其名称。这样当你按下删除时,它就会有正确的名称
标签: laravel laravel-5 dropzone.js dropzone