2011-05-07 68 views
2

我正在使用下面的代码下载文件。 我可以动态创建的文件夹和下载文件到每个文件夹requiredKeyWords使用jquery创建文件夹

$.each(requiredCities,function(keya,valb){ 
     $.each(requiredKeyWords,function(keyc,vald){ 
      var timerId = setInterval(function(){ 
      download(...); 
      clearInterval(timerId); 
      }, 4000*(i++));  
     }); 
    }); 
}); 

function download(url){ 
    ... 
} 

的每个类别谢谢

+0

你想在客户端操作系统中创建文件夹? – 2011-05-07 18:31:43

回答

3

号JavaScript是在浏览器中的沙盒,让您能够在用户的计算机无法访问。

真的,这是最好的:想象一下,每个乔和吉尔可以自动创建,移动,阅读和改变您的计算机上的东西。这将是一个巨大的安全隐患。

+0

这不全是真的。所有的浏览器都可以下载,因为用户接受它。从问题中,我们可以确保OP永远不会找到在用户机器上创建特定文件夹的方式,但肯定可以在浏览器上开始下载。 – 2011-05-07 18:51:02

+0

@ErickPetru - 当然他可以下载,但他要求创建文件夹并将下载的文件放入其中。 – Zirak 2011-05-07 18:54:14

0

它可能在IE浏览器中使用ActiveX,但不能在其他浏览器中使用。

http://www.codeproject.com/KB/scripting/JavaScript__File_Handling.aspx

“有 实施FileSystemObject的前几件事情要注意。由于 它也不会被 创建如果 客户端计算机上的安全级别高的ActiveX对象。因此,网站 已被添加到受信任的站点 列表以便将ActiveX对象可以是 创建。

用户必须在写访问创建文件时指定的路径。 在存在不确定性 的情况下,最好将文件写入 系统的临时文件夹。为Temp文件夹的路径 可以用”

2

你可以使用jQuery(如ajax()post()方法)的请求,并得到与该文件内容和所需的头一个HttpResponse找到 。很明显,你会需要一个服务器端技术(ASP.NET,Java和PHP等)接收HttpRequest并返回HttpResponse

然后,你的浏览器将拦截这个响应,下载

另外,您可以简单地将URL重定向到文件,而不需要手动发布,就像指向此文件所示:Download File Using jQuery。在这种情况下,浏览器会为您做出请求,阅读回复并解释为下载。

但是您不能指定用户将选择保存文件(也不是名称)的位置。另外,用户总是可以取消任何下载。最后,浏览器的安全性可以被配置为拒绝下载。

最后重要的是要记住,浏览器将显示每次下载窗口。然后,您无法同时开始10次下载。你使用Gmail吗?如您所见,当用户想要同时下载所有附件时,Gmail会创建一个包含所有文件的ZIP并发送该ZIP的下载。这是实现它的更好的自动化方式,但也不是你想要的。

1

幸运的是,没有。在Web浏览器中运行时,JavaScript无法访问文件系统。那将是一个巨大的安全漏洞。唯一可以做到的方式是使用ActiveX控件或Java小程序。两种选择都是邪恶的。