我有一个jQuery脚本,我想在用户点击链接后下载一个位于某个服务器上的文件。在IE11上,这可以正常工作,因为我只是打电话给:
window.open('file:///MyServer0001/SomeFolder/Tmp/ToiletFlush.log'
我知道出于安全原因,Chrome不允许使用协议文件:///。这很有趣,因为如果我在地址栏上写下这个URL,他会显示文件,但是如果我打电话给window.open(),他就会给我一个新的空窗口。此外,删除文件:///,在Chrome上没有任何操作,它表示页面不可用
所以现在我不知道如何在铬上做这项工作。我以为我可以通过POST / GET调用控制器函数来做出解决方法,返回FileResult并下载文件。这肯定有效,但我想知道一种简单的方法,只使用jQuery / JavaScript直接做到这一点。
任何想法?
答案 0 :(得分:2)
尝试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");
}
答案 1 :(得分:0)
试试这个,
在Windows上:
1.找到Chrome安装的本地网址
2.从命令行启动Chrome w /&#39; -allow-file-access-from-files&#39;先于它:
–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
或者......您需要在本地服务器上运行您的应用程序。