我将文件存储在云中,因此在上传过程中,它们会获得使其名称唯一的前缀。例如,如果我上传了一个名为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
格式下载该文件
发布于 2017-02-16 14:12:51
正如DroidNoob所提到的,这并不是特定的反应。任何跨源链接都将使用服务器给定的文件名和扩展名进行下载,但是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>
根据您的后端,您可以设置一个路由,该路由一般将原始名称映射到实际的文件名。所以前端链接到你的后端映射器,它反过来抓取文件。
https://stackoverflow.com/questions/42265625
复制相似问题