【问题标题】:Automatic file transfer from HTML从 HTML 自动传输文件
【发布时间】:2010-09-25 18:10:08
【问题描述】:

我正在构建一个 Web 应用程序,用于指导我的用户完成应用程序的配置和安装。它动态构建一组配置文件,然后将它们与应用程序的安装程序一起发送到存档(.ZIP 文件)中。该网页是从 linux shell 脚本生成的(对不起),出于安全原因,我更喜欢直接从脚本发送文件,而不是作为链接,因此用户无法直接访问它。

流程如下:一旦用户输入了一些信息并生成了文件,我想显示一个带有说明的页面,然后自动开始下载,而不要求用户单击“下载此文件”链接:

#!/bin/bash
echo_header_and_instructions         # Standard HTML
<Magic HTML tag to start transfer>   # ??? What goes here???
command_to_stream_the_files          # Probably 'cat'
echo_end_tags                        # End the page.

感谢您的帮助!

【问题讨论】:

    标签: html linux scripting file-transfer


    【解决方案1】:

    我认为你真的不能那样做。
    您可以通过以下标头强制下载文件,但据我所知,您不能混合使用 HTML 和文件下载。

    标题:

    内容类型:MIME/类型 内容处置:附件;文件名=“存档.zip” 内容长度:filesize_in_bytes

    内容长度不是强制性的,但使用它可以确保下载对话框可以显示还有多少文件要下载。

    您可以做的事情是使用 javascript 重新加载页面。由于该页面是文件下载,因此原始 HTML 页面将保留在原处:

    这是包含信息的页面
    【解决方案2】:

    我认为您可以通过使用meta tag 进行刷新来使浏览器提示用户下载文件,但正如 Pim Jager 所说,我认为您不能通过一次传输来完成。您也许可以尝试执行以下操作:

    <meta http-equiv="refresh" content="5;url=http://example.com/pathtodownload.zip" />
    

    【讨论】:

      【解决方案3】:

      一位朋友提供了魔法:使用&lt;iframe&gt; 标签创建一个“不可见”的框架,其中只包含要下载的文件:

      <iframe id="file_download" width="0" height="0" scrolling="no" 
         frameborder="0" src=/cgi-bin/my/scripts/sendfiles?file=$filename.zip>
         You need a browser that supports frames.
      </iframe>`
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 2016-09-09
      • 2011-12-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      相关资源
      最近更新 更多