使用Dropzone上传两次asp.net

时间:2015-09-04 03:24:28

标签: javascript jquery html asp.net upload

我想使用dropzone上传文件。 首先,当用户上传他/她的文件时,我将检查此文件格式, 所以我想我需要设置“autoProcessQueue:true”,以便自动检查上传的文件。 如果文件格式不正确,将要求用户再次上传,直到上传正确的文件。

然后当用户点击“保存”按钮时,该文件将被上传到我的服务器。

我的javascript代码如下:

Dropzone.options.myDropzone = {
        autoProcessQueue: true,
        addRemoveLinks: true,
        maxFilesize: 2, // MB
        acceptedFiles: ".xlsx",
        maxFiles: 1,
        url: 'MyPage.aspx?File=<%=Request.QueryString["File"]%>',
        init: function () {
            this.on("addedfile", function () {                
                if (this.files[1] != null) {
                    this.removeFile(this.files[0]);
                }
            });

            $('#_btnTest').click(function () {
                alert('aaa')
                myDropzone.processQueue();
                alert('bbb')
            });

        },
};

我的aspx代码

<div id="myDropzone" class="dropzone">
<div class="fallback">   
<input name="file" type="file" runat="server" />
</div>
</div>
    <asp:Button ID="_btnSave" runat="server" Text="Save" class="btn btn-info btn-sm" OnClick="_btnSave_Click" />

我的C#代码

protected void Page_Load(object sender, EventArgs e)
    {
                    
       if (Request.QueryString["File"] != null)
       {
           CheckFormat();
       }            
    }

当我上传文件时,它将运行“CheckFormat()”方法并自动检查。 但我的问题是,当我点击“保存”按钮时不会运行Page_Load()方法,所以我无法在代码隐藏中获取文件,这个问题让我无法上传文件时点击“保存”按钮。 顺便说一句,我想“myDropzone.processQueue();”无效。

你对这个案子的解决方案是什么? 如果要先检查文件,然后在用户单击按钮时将此文件保存到服务器,该怎么办? 请帮助我,非常感谢你。

1 个答案:

答案 0 :(得分:0)

当您的第一个上传请求完成后,文件状态将变为“成功”,在这种情况下,当您再次提交上传请求时,将跳过此文件。

解决方案: 将文件状态更改为“排队”,以便再次上传。 如下所示:

+------+---------+---------+
| Id   | Column1 | column2 |
+------+---------+---------+
| 1234 | NULL    |      22 |
| 1234 | 5       |      21 |
| 1234 | NULL    |      19 |
| 1234 | NULL    |       8 |
| 1234 | NULL    |       0 |
+------+---------+---------+