重命名上传的文件,以便删除DropZone.js

时间:2014-12-29 07:53:04

标签: javascript asp.net-mvc-5 dropzone.js

我决定更新此问题,因为我仍然无法更改imageId

这是我目前的dropzone实现

   $("div#UploadImage").dropzone({
            url: '@Url.Action("SaveUploadedPhoto", "Listing", new { advertId = @Model.AdvertId })',
            addRemoveLinks: true,
            init: function () {
                var myDropzone = this;
                // First change the button to actually tell Dropzone to process the queue.
                $("input[type=submit]").on("click", function (e) {
                    // Make sure that the form isn't actually being sent.
                    e.preventDefault();
                    e.stopPropagation();
                    myDropzone.processQueue();
                });
                myDropzone.on("success", function (file, rep) {

                    console.log(rep.UniqueId);
                    fileList[i] = { "serverFileName": rep.UniqueId, "fileName": rep.UniqueId, "fileId": rep.UniqueId, "name": rep.UniqueId };
                    i++;

                    console.log(fileList);
                });
                myDropzone.on("removedfile", function (file) {
                    var rmvFile = "";
                    for (f = 0; f < fileList.length; f++) {

                        if (fileList[f].fileName == file.name) {
                            rmvFile = fileList[f].serverFileName;
                        }

                    }
                    if (rmvFile) {
                        $.ajax({
                            url: '@Url.Action("DeleteUploadedFile", "Listing")',
                            type: "POST",
                            data: { "id": rmvFile }
                        });
                    }
                });
            },
            maxFilesize: 2,
            maxFiles: 12
        });

当我上传图片时,我们将图片传递给第三方公司,该公司为该图片返回uniqueId,然后将此uniqueId保存在我的数据库中,然后将此uniqueId传递回视图,该视图将成为上传的图像名字,我试图在&#34;成功&#34;函数在dropzone的上述实现中,当我做

console.log(rep.UniqueId);

我可以看到价值及其正确。

当我按下&#34;删除图像&#34;在dropzone上&#34; removedFile&#34;函数被调用,这不会激发到控制器,因为rmvFile是旧的图像名称,并且它在for循环中找不到匹配,我知道这是因为我做的时候

console.log(rmvFile);  

它显示了旧名称,现在我的问题是我在这里做错了什么?如何将上传的图像名称或ID更改为上传完成后返回的uniqueId?所以我可以在需要时成功删除它。

我浏览了网页,尝试了一些情况,这导致了我的成功方法目前的样子。

1 个答案:

答案 0 :(得分:2)

在尝试了许多不同的解决方案之后,我已经设法让它工作了。

我发现在图像的uniqueId中进行以下传递

file.serverId['UniqueId'],