我将文件存储在云中,因此在上传过程中它们会获得前缀,使其名称独一无二。例如,如果我上传一个名为test.txt
,在上传过程中它被保存为7ea205f01ae5_test.txt
。值得注意的是,我确实捕获并保存了原始文件名。
在我的 React 组件中,我试图通过使用 download 属性使其用户友好,以便当用户单击下载文件时,它将被下载为test.txt
但它不起作用。该文件仍然被下载为7ea205f01ae5_test.txt
.
这就是我的 React 代码的样子
<a href={fileUrl} download={origName}>{fileName}</a>
我的组件的对象如下所示:
{
id: 123,
fileName: "7ea205f01ae5_test.txt",
origName: "test.txt",
fileUrl: "https://myBlobStorageUrl.com/container/7ea205f01ae5_test.txt?signature=123abcxyz"
}
请注意,fileUrl 包含允许用户访问该文件的安全访问签名。如果没有它,用户将无法访问该文件。
我需要做什么才能将文件下载为test.txt
?
正如 DroidNoob 所提到的,这并不是 React 特有的。
任何跨源链接都将使用服务器给定的文件名和扩展名进行下载,但是download
属性适用于同源。
// Domain: example.org
// Downloads as 281c2df7dbce9284dca6059db944f8df.png
<a download="foo.txt" target="_blank" href="https://www.gravatar.com/avatar/281c2df7dbce9284dca6059db944f8df?s=48&d=identicon&r=PG">download</a>
// Downloads as foo.txt
<a download="foo.txt" target="_blank" href="http://example.org/assets/avatar.png">download</a>
根据您的后端,您可以设置一条通常将原始名称映射到实际文件名的路由。因此,前端链接到后端映射器,然后它依次获取文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)