Javascript 如何将fileInput元素的结果下载为任何类型文件的文件?

Javascript 如何将fileInput元素的结果下载为任何类型文件的文件?,javascript,html,blob,Javascript,Html,Blob,目前,我可以将fileInput元素的onChange结果作为base64字符串读取 我想在页面上实现一个链接,以便不同的用户可以下载与生成的base64或blob相同的文件 作为补充,文件类型未知。因为我想要任何支持的文件类型。或者图像、MS office和文本文件中的一些常用文件类型 让我把我现在的代码放在下面 我不知道您为什么要这样做,但您可以直接在文件上使用URL.createObjectURL() 文件对象实现与blob相同的接口。无需实际读取文件即可链接到该文件。要支持所有文件类型

目前,我可以将fileInput元素的onChange结果作为base64字符串读取

我想在页面上实现一个链接,以便不同的用户可以下载与生成的base64或blob相同的文件

作为补充,文件类型未知。因为我想要任何支持的文件类型。或者图像、MS office和文本文件中的一些常用文件类型

让我把我现在的代码放在下面


我不知道您为什么要这样做,但您可以直接在文件上使用
URL.createObjectURL()


文件对象实现与blob相同的接口。无需实际读取文件即可链接到该文件。

要支持所有文件类型,请按以下方式编辑:

//reader.readAsDataURL(file);
reader.readAsBinaryString( file );
const myBlob=await (reader.result); //I assume this is a blob.
const fileToStr=myBlob.toString();
//const blobUrl = URL.createObjectURL(myBlob);//ERROR

const file2=new File([fileToStr], "filename");
const blobUrl = URL.createObjectURL(file2);
要从blob创建fileObject,请按如下方式编辑:

//reader.readAsDataURL(file);
reader.readAsBinaryString( file );
const myBlob=await (reader.result); //I assume this is a blob.
const fileToStr=myBlob.toString();
//const blobUrl = URL.createObjectURL(myBlob);//ERROR

const file2=new File([fileToStr], "filename");
const blobUrl = URL.createObjectURL(file2);

,谢谢你的回答。我的问题比实际情况简化了。我真的很想让不同的用户下载这个文件。@skatori那是完全不同的事情。。。你必须把它上传到某个服务器上。谢谢你的评论。我知道。但是,如果把它包括进去,我的问题就变得很复杂,写下来和读起来都很困难。