从文件上载控件中删除特定文件

removing specific file from fileupload control

本文关键字:文件 删除 控件 上载      更新时间:2023-09-26

我有一个文件上传控件

 <ajaxToolkit:AsyncFileUpload ClientIDMode="Static" name="aa[]" BackColor="Azure"
                            ForeColor="Black" OnClientUploadError="uploadError" OnClientUploadStarted="abc"
                            multiple="multiple" OnClientUploadComplete="uploadComplete" runat="server" ID="AsyncFileUpload1"
                            Width="400px" CompleteBackColor="White" UploadingBackColor="#CCFFFF" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" />

我想从文件上传控制中删除特定文件。

假设我想删除第二个文件,所以我想实现这样的事情

 fileupload1.files[1].remove()

文件上传控制可以吗?

我想在javascript中实现它

使用

JavaScript 如果您使用 FileReader,则可以添加正常的文件输入更改事件侦听器,然后从更改事件循环遍历每个文件,过滤所需的验证,将有效文件推送到单独的数组中使用文件读取器 API 在本地读取文件 将有效的、已处理的文件提交到服务器,如以下代码示例所示:

var validatedFiles = [];
$("#fileToUpload").on("change", function (event) {
  var files = event.originalEvent.target.files;
  files.forEach(function (file) {
    if (file.name.matches(/something.txt/)) {
      validatedFiles.push(file); // Simplest case
    } else { 
      /* do something else */
    }
  });
});
validatedFiles.forEach(function (file) {
    if (file.name.matches(/something.txt/)) { // You could also do more complicated validation after processing the file client side
      var reader = new FileReader();
      // Setup listener
      reader.onload = (function (processedFile) {
        return function (e) {
          var fileData = { name : processedFile.name, fileData : e.target.result };
          // Submit individual file to server
          $.post("/your/url/here", fileData);
          // or add to list to submit as group later
          validatedFiles.push(fileData);
        };
      })(file);
      // Process file
      reader.readAsDataURL(file);
    } else { 
      /* still do something else */
    }
  });

希望这有帮助