代码之家  ›  专栏  ›  技术社区  ›  Sparafusile

如何设置从浏览器下载的文件名?

  •  43
  • Sparafusile  · 技术社区  · 14 年前

    我正在编写一个web应用程序,它允许用户将文件上传到我的服务器。为了防止名称冲突和组织文件,我将它们放在服务器上后重新命名。通过跟踪原始文件名,我可以与文件的所有者进行通信,而不会让他们知道我更改了后端的文件名。也就是说,直到他们去下载文件。在这种情况下,系统会提示他们下载一个名称不熟悉的文件。

    我的问题是,有没有办法只使用HTML来指定要下载的文件的名称?因此,用户上传一个名为“abc.txt”的文件,我将其重命名为“xyz.txt”,但当他们下载它时,我希望浏览器在默认情况下将该文件保存为“abc.txt”。如果仅仅用HTML无法做到这一点,有什么方法可以做到吗?

    5 回复  |  直到 14 年前
        1
  •  84
  •   Toby Allen mercator    9 年前

    header('Content-Disposition: attachment; filename="downloaded.pdf"');
    

    如果您希望提供一个默认文件名,而不是自动下载,这似乎是可行的。

    header('Content-Disposition: filename="filetodownload.jpg"');
    

        2
  •  86
  •   Emile Bergeron Rudy Hinojosa    7 年前

    当他们点击一个按钮下载文件时,你可以添加 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>
    
        3
  •  4
  •   ˈvɔlə    4 年前

    使用HTML5非常简单 download 属性!

    演示。

    https://codepen.io/xgqfrms/full/GyEGzG/

    我的屏幕快捷方式。

    enter image description here

    enter image description here

        4
  •  -1
  •   Marcel Korpel    14 年前

    !

    如果您计划将其用于多个文件,那么我建议您使用(或制作一个)PHP下载管理器。

    但是 ,如果你想把它变成一个或两个文件, 我建议你使用mod\u重写选项

    你必须创建或编辑你的 .htaccess访问 存档于 htdocs公司 文件夹并添加:

    RewriteEngine  on 
    RewriteRule ^abc\.txt$  xyz.txt
    

    xyz.txt文件 abc.txt文件

    注意:验证是否已经 “在您的文件中,如果是,只添加 第二 对于要重定向的每个文件。

    祝你好运 ;)