【问题标题】:prompt save file download box on click for multiple files单击多个文件时提示保存文件下载框
【发布时间】:2014-04-12 15:01:56
【问题描述】:

php

<a href="<?php echo $path_data['wall_path'];?>">
<?php echo $dimensions_data['width'] . "x" . $dimensions_data['height']; ?></a>

哪个输出

<li><a href="wallpapers/2014/04/scape-640x960-640x960.jpg">640x960</a></li>
<li><a href="wallpapers/2014/04/scape-640x1136-640x1136.jpg">640x1136</a></li>
<li><a href="wallpapers/2014/04/scape-720x1280-720x1280.jpg">720x1280</a></li>
<li><a href="wallpapers/2014/04/scape-768x1280-768x1280.jpg">768x1280</a></li>
<li><a href="wallpapers/2014/04/scape-1080x1920-1080x1920.jpg">1080x1920</a></li>

现在我需要做的是当用户clicks 任何一种大小时,我想提示一个包含适当size 文件的保存文件对话框。我读过Forcing to download a file using PHPPHP Force File Download,但根据我的理解,这些是针对单个文件下载的。如果不是,请纠正我。

限制: 当用户单击链接时,不想转发到另一个页面,例如 download.php 文件。

【问题讨论】:

    标签: php download


    【解决方案1】:

    通常浏览器不会显示图像的下载对话框,而是显示图像,所需的行为是什么。然后您可以单击“另存为...”并保存图像。

    浏览器对文件的处理取决于网络服务器为该文件发送的 mime 类型。对于 jpg 图像,它将是

    image/jpeg
    

    如果您真的想欺骗浏览器显示保存对话框,您需要为该文件发送不同的 mime 类型,例如:

    application/octet-stream
    

    这可以使用修改标题并输出文件的 download.php 文件(或其他文件)来完成。可以使用重写的 url 向用户隐藏这种 download.php 的存在。

    如果您不希望这样,您需要告诉 Web 服务器它应该为该文件发送不同的 mime 类型。例如,如果您运行 apache,则可以将以下行添加到您的 .htaccess 文件中:

    AddType application/octet-stream .jpg
    

    【讨论】:

    • 我目前在本地工作,并使用 xampp。抱歉,我没有尝试编辑 .htaccess 文件。我将如何做到这一点?谢谢!
    • 我的意思是文件的位置应该是什么。我检查了LoadModule rewrite_module modules/mod_rewrite.soAllowOverride All 设置,然后在我的htdocs 文件夹中创建了.htaccess 文件,但它似乎不起作用。
    • 与模组重写无关。 AllowOverride FileInfo 在这种情况下就足够了,但All 也可以。我会将 .htaccess 放在壁纸文件夹中。您是否重新启动了网络服务器?
    • 同时清空浏览器缓存
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多