我正在使用c#mvc应用程序来开发我的网站。
以下代码给了我一些问题,因为我打算在用户选择要上传的文件后触发上传。因此,我在文件上传中应用了更改事件。
<form style="display:inline;" enctype="multipart/form-data" action="/Admin/AddImage" method="post" id="uploadImageForm">
<input hidden name="listing_id" value="@Request.QueryString["id"]"/>
<label for="file-upload" style="width :120px" class="btn btn-default custom-file-upload">
<input name="uploaded_image" id="file-upload" type="file" onchange="document.getElementById('uploadImageForm').submit();" />
Add Image
</label>
</form>
好的,这很好。但是,当我在Chrome浏览器上单击“后退”按钮时,此愚蠢的事件将再次触发,因此两次上传。我如何防止这种情况发生。
问题是,当我单击返回时,该事件将在bodyonload时触发。因此输入文件具有缓存,因此它将触发另一次上传
答案 0 :(得分:0)
客户端:您可以使用添加到客户端 通过从历史记录中删除页面来限制用户使用浏览器的后退按钮。
history.pushState(null, null, document.title);
window.addEventListener('popstate', function () {
history.pushState(null, null, document.title);
});