如何从URL获取文件作为输入文件类型

问题描述

我使用以下功能通过XMLHttpRequest从网址获取文件

function loadFile(filePath) {
  var result = null;
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET",filePath,false);
  xmlhttp.overrideMimeType('text/plain; charset=x-user-defined');
  xmlhttp.send(null);
  if (xmlhttp.status==200) {
    result = (xmlhttp.response);
  }
  return result;
}

我想访问文件属性,例如名称,等等。
是否有将其转换为输入文件类型的方法
我该怎么办?
有人可以帮助我吗?


我使用了本文中的以下代码
Convert URL to File or Blob for FileReader.readAsDataURL

fetch("http://localhost:5050/MyAudio.mp3",{mode:"cors"})
.then(res => res.blob())
.then(blob => {
 var file = new File([blob],"MyAudio.mp3",{type:"text/plain"});
 var dataTransfer = new DataTransfer();
 dataTransfer.items.add(file);
 console.log(dataTransfer.files);
});

但是看来dataTransfer.filesevent.target.files不同
因为我得到相同的类型值,但是值却不同。


dataTransfer.files输出FileList 0: File {name: "MyText.txt",lastModified: 1602355635179,lastModifiedDate: Sat Oct 10 2020 22:17:15 GMT+0330 (Iran Standard Time),webkitRelativePath: "",size: 524288,…} length: 1 __proto__: FileLis


event.target.files输出FileList 0: File length: 1 __proto__: FileLis


我想从url获取文件,并用event.target.files类型填充输入文件
有人可以为此推荐或帮助我吗?


当我用event.target.file填充文件时,我没有任何问题。
当我从url获取文件并从中获取音频上下文时,在chrome中,我得到以下警告:
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page
我能做些什么来防止引起用户的困扰吗?或者我必须在工作中使用其他解决方案?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)