强制浏览器将下载的文件保存在特定位置

时间:2015-01-20 05:01:28

标签: c# asp.net-mvc-4 download

我的项目是Asp.Net MVC4网络应用程序。

目前,它有一种方法可以生成文本文件并将其发送到客户端的浏览器进行下载。

我需要修改它以强制浏览器将文件保存在客户端计算机上的自定义(预定义)位置。

3 个答案:

答案 0 :(得分:0)

这是不可能的,因为它会引入严重的安全问题。用户必须决定文件的保存位置。

您只能在您有权访问的服务器上指定位置。

如果是内部网站,那么您可以设置服务器将文件保存到网络位置并将该路径返回给用户..

如果要显示另存为,请将其添加到ActionResult以指示文件下载:

Response.SetCookie(new HttpCookie("fileDownload", "true") { Path = "/" });
return myFileStreamResult

答案 1 :(得分:0)

您的网络应用程序只能将文件发送到您的客户端。强制下载并保存到特定位置是不可能的,因为下载并保存到权限属于客户端浏览器。

如果用户未定义默认下载位置,则会在下载内容时提示保存,如果用户已经定义了默认下载位置。它会自动下载并保存到默认位置。

所以我认为你对你的网络逻辑有一点误解:D

答案 2 :(得分:0)

我需要将文件下载并排序到客户端计算机上严格定义的目录结构中,不会出现用户错误。理想情况下,它将是完全自动的。我无法完全自动化,但在Windows中的Chrome中,我消除了输入错误的可能性:

<a class="aDownload" href="file.txt" download="CTRL+V for suggested path/file">Download</a>
<textarea id="textareaClipboard"></textarea>

使用jQuery监听链接的点击,我调用一个函数来生成所需的路径和最终文件名,将其放入textarea,并使用

将其传输到剪贴板
jQuery('#textareaClipboard').select();
document.execCommand('copy' ,null ,null);

“另存为”对话框弹出&#34; CTRL + V表示建议的路径/文件&#34;在文件名字段中。按照建议将生成的文件名粘贴到此字段中,然后按Enter键。

它需要最少量的用户操作以确保文件以正确的名称转到正确的目录,并且用户始终可以拒绝该建议。

相关问题