2012-03-13 125 views
0

我想下载由jquery事件调用时由php页面返回的文件。我红色的插入可以做到这一点,但它在w3school上说,这个标签已被弃用。我想知道是否有其他解决方案。使用JQuery下载文件/ Php

我认为触发下载的事件是使用简单模式的模式窗口中的按钮可能是相关的。我希望在事件发生后保持该窗口打开。

这是我第一次用PHP下载文件,所以可能有一个简单的方法来实现这一点,我不知道。

+2

为什么不重定向用户到下载网址,你甚至可以使用target =“_空白”,以确保下载在新窗口/标签打开,而且由于链接只是文件的URL,然后窗口/选项卡将立即关闭本身 – deltree 2012-03-13 18:37:42

+0

我用php的原因,我需要控制谁有权访问哪些文件。而我设计它的方式,我觉得它只适用于点击下载,它开始下载而不是重新定向。 – maniak 2012-03-13 18:42:07

+0

[w3fools](http://w3fools.com) – 2012-03-13 18:42:09

回答

0

您可以使用PHP在某些权限下重定向到该文件。

<?php 
    if($username == "soandso") { 
     header("Location: download.exe"); 
    } 
?> 

此外,标记未被弃用。仍适用于新旧浏览器。

+0

通过下载一个文件,我希望它开始下载...就像在Chrome中它开始下载在屏幕的底部。它知道它是活着的,它可以工作,但它被提及在w3school上被弃用。所以我想知道是否有另一个“干净”的解决方案,不使用废弃的标签。 – maniak 2012-03-13 18:45:39

+0

PHP是一种服务器端编程语言。它不能强制客户端下载文件。它所能做的只是将其重定向到浏览器将下载并返回到上一页的位置。 – Anonymous 2012-03-13 18:46:50

+0

好的感谢澄清的事情,但这个解决方案将如何使用jQuery调用使用jQuery的? – maniak 2012-03-13 18:57:04

1

你可以制作一个替代的php文件,当你点击按钮时将强制下载。使用页眉在PHP 这可能帮助: headers

+0

是的,谢谢,我试图实现的解决方案,但由于我需要使用此方法的iframe来保持用户在同一页面,我想确保。 – maniak 2012-03-13 19:00:08

+0

你可以尝试通过$ .get或$ .post调用那个php文件来发送一些触发器参数,并且我认为它不会导致打开另一个页面。 – 2012-03-13 19:09:42

+0

不知道我是否正确,但$ .get和$ .post希望收到html内容而不是头文件...但会更详尽地尝试 – maniak 2012-03-13 19:21:50