我正在编写一个web应用程序,其中包括允许用户将文件上传到我的服务器。为了防止名称冲突和组织文件,我在将它们放到服务器上后对它们进行了重命名。通过跟踪原始文件名,我可以与文件的所有者通信,而不会让他们知道我在后端更改了文件名。也就是说,在他们下载文件之前。在这种情况下,系统会提示他们下载一个名称不熟悉的文件。
我的问题是,有没有办法只使用HTML来指定要下载的文件的名称?因此,用户上传了一个名为“abc.txt”的文件,我将其重命名为“xyz.txt”,但当他们下载该文件时,我希望浏览器在默认情况下将该文件保存为“abc.txt”。如果仅仅使用HTML不能做到这一点,那么有什么方法可以做到呢?
发布于 2010-06-23 21:58:33
在HTML中找不到方法。我认为您需要一个服务器端脚本来输出content-disposition标头。在php中,这是这样做的:
header('Content-Disposition: attachment; filename="downloaded.pdf"');
如果你想提供一个默认的文件名,而不是自动下载,这似乎是可行的。
header('Content-Disposition: filename="filetodownload.jpg"');
实际上,它是直接为您的文件提供服务的服务器,因此您无法从HTML与它进行交互,因为根本不涉及HTML。
发布于 2015-02-06 19:13:48
当他们单击按钮下载文件时,您可以添加HTML5 attribute download
,您可以在其中设置默认文件名。
当我创建了一个xlsx文件,浏览器希望将其保存为zip文件时,我就是这么做的。
<a href="path/to/file" download="renamed.txt">Download</a>
<a href="downloads/export.xlsx" download="Data-Export.xlsx">Download Export</a>
发布于 2018-01-02 23:57:23
https://stackoverflow.com/questions/3102226
复制相似问题