Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链接到HTML中的下载_Javascript_Php_Html - Fatal编程技术网

Javascript 链接到HTML中的下载

Javascript 链接到HTML中的下载,javascript,php,html,Javascript,Php,Html,我必须为学校创建一个在线时间表。目前困扰我的部分是无法通过单击文件名下载文件 我试图通过点击一个按钮或一个带有html/php(可能是javascript)的链接来下载一个文件,但对于javascript,我应该以某种方式将php和javascript结合起来,因为javascript没有readfile功能 我的一些尝试: <a href="dateiupload/testmove.txt">Download</a> +html: <input type="bu

我必须为学校创建一个在线时间表。目前困扰我的部分是无法通过单击文件名下载文件

我试图通过点击一个按钮或一个带有html/php(可能是javascript)的链接来下载一个文件,但对于javascript,我应该以某种方式将php和javascript结合起来,因为javascript没有readfile功能

我的一些尝试:

<a href="dateiupload/testmove.txt">Download</a>
+html:

<input type="button" value="Download" onClick="download('dateiupload/testmove.txt')" >
<iframe id="frame" style="display:none"></iframe>
<a href="javascript:download('/dateiupload/testmove.txt')">download</a>
+html:

<input type="button" value="Download" onClick="download('dateiupload/testmove.txt')" >
<iframe id="frame" style="display:none"></iframe>
<a href="javascript:download('/dateiupload/testmove.txt')">download</a>
+html(同上):

这个解决方案不需要等待我的点击,而是通过启动站点开始下载

我想到的一个可行的解决方案是链接到另一个自动开始下载的站点,但这绝对不是必须的。我在网站上使用了
$\u POST
变量,当我离开网站时,这些变量就丢失了,下载后我就不能回来了。
它必须通过单击文件名开始下载。

您可以使用“下载”属性直接从锚定标记下载

默认情况下,下载文件的文件名为
testmove.txt


您可以像这样更改文件名。


更多详细信息,请参见

您正确地使用了这些标题-如您所见,该文件正在下载中。现在唯一的问题是在你需要的时候下载它

对于一个非常简单的解决方案,我建议设置一个
download.php
文件,它将是您下载所有文件的页面。您将为此文件设置一个
GET
参数,URL如下所示:

http://your-cool-site.com/download.php?filename=textmove.txt
现在在
download.php
中,您将读取
GET
参数,该参数将作为文件名,然后最终将其传递给
readfile
函数这是您应该考虑强制执行某种级别的安全性的阶段,因为直接向函数传递路径可以让人们访问他们不应该查看的文件!考虑将实际可下载的文件限制在有限的文件或路径选择范围内,您知道这些文件或路径对人们下载是“安全的”。

您还需要在标题中使用文件名(甚至可能使用文件大小来支持显示下载进度)

一旦这个
download.php
文件准备就绪,您就可以从其他页面以与现在非常类似的方式放置指向它的链接:

<a href="download.php?filename=testmove.txt">Download File</a>


单击此链接将请求
download.php
,当它获得适当的标题时,下载将开始。

没问题!:)我也被这个问题所困扰,但经过几天的搜索后,我才得到了这个可笑的简单解决方案。@Blubbb-请注意,这个功能是例如IE或safari(包括iOS)-我想这可能会影响到你,取决于你的要求。@tinkerbot+1回答得好!我建议使用W3schools以外的参考资料。在过去关于该网站。我建议使用类似的方法。这是一个很好的观点。对于
Chrome
Opera
Firefox
,这个解决方案应该很好,但是对于
IE
你必须使用某种服务器端代码,比如@LixGood advice建议的PHP,@Lix,将在将来使用它。看起来你已经在这个问题和这篇文章上做了一些工作!你真好!我认为你得到一些反对票的原因是因为你的帖子中的“噪音”。任何与手边的技术问题没有直接联系的东西都被认为是从主要问题上转移注意力,通常被称为“噪音”。我将继续为您清理帖子,让您更好地了解如何发布社区普遍接受的问题。
header(“Content-Disposition:attachment;filename=“.$\u-GET['path'])
如果您不根据可下载文件列表验证输入,则这是一个纯粹的罪恶。还有html5下载属性,不幸的是,目前仍然缺乏浏览器支持:@BlubBlubb-很高兴帮助:)快乐编码!
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$_GET['path']);
readfile($_GET['path']);
http://your-cool-site.com/download.php?filename=textmove.txt
<a href="download.php?filename=testmove.txt">Download File</a>