我想使用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();”无效。
你对这个案子的解决方案是什么? 如果要先检查文件,然后在用户单击按钮时将此文件保存到服务器,该怎么办? 请帮助我,非常感谢你。
答案 0 :(得分:0)
当您的第一个上传请求完成后,文件状态将变为“成功”,在这种情况下,当您再次提交上传请求时,将跳过此文件。
解决方案: 将文件状态更改为“排队”,以便再次上传。 如下所示:
+------+---------+---------+
| Id | Column1 | column2 |
+------+---------+---------+
| 1234 | NULL | 22 |
| 1234 | 5 | 21 |
| 1234 | NULL | 19 |
| 1234 | NULL | 8 |
| 1234 | NULL | 0 |
+------+---------+---------+