gpt4 book ai didi

javascript - 使用 Dropzone.js 在服务器上删除重命名的文件

转载 作者:行者123 更新时间:2023-11-29 16:49:45 25 4
gpt4 key购买 nike

我正在尝试实现 Dropzone JS 以帮助将文件上传到服务器。我在客户端使用 Dropzone 的通用实现,我的 html 如下所示:

  <form id='portfolioupload' action='PortfolioUpload.php' class='dropzone'>
<div class='fallback'>
<input name='file' type='file' />
</div>
</form>

在服务器中,我做了一些检查,最后,我重命名文件并将其移动到它的最终位置:

$newname = substr(GetGUID(false), -7) . '.' . $ext;
move_uploaded_file($_FILES['file']['tmp_name'], PortfolioPath() . $newname)

我按照 Dropzone.js- How to delete files from server? 中的建议使用 json 传回此信息:

header_status(200); // output header, error 200
echo json_encode(array("Filename" => $newname));

那里的代码示例看起来像是将它添加到一个数组中,该数组可以传递给服务器以供删除。非常接近,但不是我要找的东西。

然后我偶然发现了这个问题,how to upload and delete files from dropzone.js ,并看到我可以收听 removedfile 事件。所以我像这样实现代码:

Dropzone.options.portfolioupload = {
acceptedFiles: '.png, .jpg, .gif',
addRemoveLinks: true,
maxFiles: 25,
maxFilesize: 500000,
removedfile: function(file) {
alert('Deleting ' + file.name);
var name = file;
$.ajax({
type: 'POST',
url: 'app/assets/PortfolioUpload.php',
data: "f=delete&fn="+name,
dataType: 'html'
});

var _ref;
return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;
}
};

请求已成功发送到服务器,只是文件名是原始文件名,而不是服务器重命名的文件名。

今天在网上搜了一圈,感觉不知道怎么把这两个东西联系起来。例如,如果我上传 foo.jpg 并在服务器中将其重命名为 dk03p7b.jpg,我如何告诉 Dropzone foo.jpg = dk03p7b.jpg 以便当用户单击删除文件时,它也会在服务器中删除?

最佳答案

我自己解决了这个问题,首先,从成功响应中获取 json 并将其保存到元素 file.previewElement.id 中,如下所示:

  success: function( file, response ) {
obj = JSON.parse(response);
file.previewElement.id = obj.filename;
}

然后我在 removedfile 事件中执行 delete ajax 调用时使用该值:

  removedfile: function(file) {
var name = file.previewElement.id;
$.ajax({
type: 'POST',
url: 'deletefile.php',
data: "fn="+name,
dataType: 'html'
});

var _ref;
return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;
},

关于javascript - 使用 Dropzone.js 在服务器上删除重命名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com