即使用户选择“取消”,我如何保留FileDialog输入值?(ASP.Net/Javascript)

How can I retain FileDialog Input value, even if user selects Cancel? (ASP.Net / Javascript)

本文关键字:输入 FileDialog ASP Javascript Net 保留 取消 选择 何保留 用户      更新时间:2023-09-26

显然,如果您使用FileDialog将文件上传到web,然后用户重新打开文件对话框并单击"取消",则之前选择的任何文件都将不再作为输入/文件值保留。

这里有一些WIP代码,你可以看到,如果用户选择取消,我想把当前选择的文件存储在一个变量中,作为输入文件重新附加,但显然这不起作用。

由于我必须在fiddle链接中添加代码,下面是一些JS 的片段

   var currentlySelectedFile = $("#AttachmentUpLoad_FileUpload")[0].files[0] ; 
$(document).on('change', '.btn-file :file', function () {
    var input = $(this),
        numFiles = input.get(0).files ? input.get(0).files.length : 1,
        label = input.val().replace(/''/g, '/').replace(/.*'//, '');
        if(numFiles > 0){
                input.trigger('fileselect', [numFiles, label]);
        }
        else{
       /*  $("#AttachmentUpLoad_FileUpload").[0].files[0]  =(currentlySelectedFile); */
            return;
        }
});

你实际上是如何解决这个问题的?

试试这个:

var filesSaved = {};
$(document).ready(function() {
    $('#inputfile').on('change', function() {
        if (this.files.length > 0) {
            filesSaved = this.files;
        }
    });
});

开始页面时,fileSaved对象为空。每次用户选择文件时,都会将所选文件设置为fileSaved对象。

因此,当用户取消时,您仍然需要处理fileSaved对象。