[英]jQuery / javascript download file doesn't work on Chrome
我有一个jQuery脚本,在用户单击链接后,我想在其中下载文件,该文件位于某些服务器上。 在IE11上,此方法可以正常运行,因为我只是打电话给:
window.open('file:///MyServer0001/SomeFolder/Tmp/ToiletFlush.log'
我知道出于安全原因,Chrome不允许使用协议文件:///。 有趣的是,如果我在地址栏上写这个URL,他将显示文件,但是,如果我调用window.open(),他只会为我打开一个新的空窗口。 另外,删除file:///,在Chrome上不执行任何操作,表示该页面不可用
所以现在我不知道如何在铬上进行这项工作。 我以为可以通过POST / GET调用控制器函数,返回FileResult并下载文件来解决。 这绝对可行,但是我想知道一种仅使用jQuery / JavaScript直接执行此操作的简单方法。
任何想法?
尝试使用ASP.NET MVC FileResult:
视图:
<a href='@Url.Action('GetFile','Home')">Download File</a>
在家庭控制器中:
public FileResult GetFile()
{
//Read file content into variable.
string content=File.ReadAllText("filepath");
byte[] byteArray = Encoding.ASCII.GetBytes(content);
return File(byteArray, System.Net.Mime.MediaTypeNames.Text.Plain, "ToiletFlush.log");
}
尝试这个,
在Windows上:
1.找到您的Chrome安装程序的本地URL
2.从命令行启动带有w-“-allow-file-access-from-files”的Chrome浏览器:
–allow-file-access-from-files C://...
在OSX上,只需在终端中输入以下内容:
open /Applications/Google\ Chrome.app --args --allow-file-access-from-files
Using Google Chrome Canary is also possible:
open /Applications/Google\ Chrome\ Canary.app --args --allow-file-access-from-files
或者...您需要在本地服务器上运行应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.