asp.net mvc 下载文件,能不能不显示对话框,在后台默默运行??

Pc498471249 2014-05-06 05:00:20
如题。
目前我使用的是

public FilePathResult DownloadFile()
{
return File(SroucePath,"text/plain",TargetPath);
}


但是每次它都会弹出对话框, 并且无法在代码设置中路径(每次都要选择保存位置)。
mvc有没有办法让浏览器在后台默默下载文件。完了给一个提示之类的。
请各位大神赐教 !!!
...全文
951 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pc498471249 2014-05-08
  • 打赏
  • 举报
回复
好吧 我已经选择了一个折中的方式, 确实无法直接控制浏览器的下载功能, 所以我把这个下载功能做到了客户端 当操作者在网页上操作的时候,会自动调用安装到他本地的一个下载客户端 (这里用到了自定义协议,浏览器调用本地exe) 本地客户端被调用启动之后,接收到浏览器传输过来的参数, 再执行下载。 (用客户端来操作文件真是爽太多啦~~~)
Pc498471249 2014-05-08
  • 打赏
  • 举报
回复
引用 11 楼 xxoome 的回复:
如果能那就太流氓了,不能选择取消,自定义保存路径,到处是这样的网站估计网民都蛋疼了
内部生产系统。 不对外
十三- 2014-05-07
  • 打赏
  • 举报
回复
如果能那就太流氓了,不能选择取消,自定义保存路径,到处是这样的网站估计网民都蛋疼了
moonwrite 2014-05-07
  • 打赏
  • 举报
回复
引用 7 楼 Pc498471249 的回复:
[quote=引用 6 楼 Pc498471249 的回复:] [quote=引用 2 楼 insus 的回复:] 假设,如果你在程序中,把保存目录设为F:盘,但并不是所有客户端都是F:盘。 就是你设为一个每个客户端都有的,如C:盘,但某一客户端的C:盘空间不足,又怎样呢? 也就是说,客户环境是不相同的,这些在开发时,需要考虑的。
这是web 生产系统,所有客户端的环境都是一样的.[/quote] 不能让操作者每次都是选择路径, 这是一个繁琐的过程,如果这样,这个操作者可能一天要选择上百次路径,用户体验就会变得极其差,所以在这个操作者的账号中有一个他本地的保存路径,我想浏览器下载文件的时候不弹出对话框 同时把文件下载到指定的路径去[/quote] 出个说明文档(或者在页面上),教使用者设置浏览器的默认下载路径就可以了~ 就算我自己下载东西,我也不设置默认下载路径的~ 因为我会根据我要下载的东西
webdiyer 2014-05-07
  • 打赏
  • 举报
回复
引用 7 楼 Pc498471249 的回复:
[quote=引用 6 楼 Pc498471249 的回复:] [quote=引用 2 楼 insus 的回复:] 假设,如果你在程序中,把保存目录设为F:盘,但并不是所有客户端都是F:盘。 就是你设为一个每个客户端都有的,如C:盘,但某一客户端的C:盘空间不足,又怎样呢? 也就是说,客户环境是不相同的,这些在开发时,需要考虑的。
这是web 生产系统,所有客户端的环境都是一样的.[/quote] 不能让操作者每次都是选择路径, 这是一个繁琐的过程,如果这样,这个操作者可能一天要选择上百次路径,用户体验就会变得极其差,所以在这个操作者的账号中有一个他本地的保存路径,我想浏览器下载文件的时候不弹出对话框 同时把文件下载到指定的路径去[/quote] 这是浏览器的功能,和asp.net mvc或者html没有任何关系,你根本不可能控制得了,除非做个浏览器插件专门处理下载,这样的话也得每种浏览器(IE、Chrome、Firefox、Safari....)做一个插件
uinatlex 2014-05-07
  • 打赏
  • 举报
回复
我看到过有个网站可以下完了再保存,下的时候可以网站还有下载进度条。
zlw0905 2014-05-07
  • 打赏
  • 举报
回复
这个怎么提示是客户端的浏览器所决定的,你像ie会出现一个对话框,但是chorme会默认下载到一个目录,没有像ie的明显对话框,而且没有任何程序是你不用点击就自动运行的,每个操作都得需要一个用户
Pc498471249 2014-05-06
  • 打赏
  • 举报
回复
引用 1 楼 taozi318aaa 的回复:
这个可以 试试 public FileStreamResult DownLoad(string id) { if (System.IO.File.Exists(Server.MapPath("~/export_temp/" + id))) { string absoluFilePath = Server.MapPath("~/export_temp/" + id); return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(id)); } return null; }
大哥,我的文件不在web服务器上, 而是在另一台服务器, 如果用过FileStream来下载, 那么这个文件就会先经过web服务器,再开始下载, 从流程上来说,多了一个文件下载的步骤, 而且FileStram同样会弹出浏览器对话框啊
Pc498471249 2014-05-06
  • 打赏
  • 举报
回复
引用 6 楼 Pc498471249 的回复:
[quote=引用 2 楼 insus 的回复:] 假设,如果你在程序中,把保存目录设为F:盘,但并不是所有客户端都是F:盘。 就是你设为一个每个客户端都有的,如C:盘,但某一客户端的C:盘空间不足,又怎样呢? 也就是说,客户环境是不相同的,这些在开发时,需要考虑的。
这是web 生产系统,所有客户端的环境都是一样的.[/quote] 不能让操作者每次都是选择路径, 这是一个繁琐的过程,如果这样,这个操作者可能一天要选择上百次路径,用户体验就会变得极其差,所以在这个操作者的账号中有一个他本地的保存路径,我想浏览器下载文件的时候不弹出对话框 同时把文件下载到指定的路径去
Pc498471249 2014-05-06
  • 打赏
  • 举报
回复
引用 2 楼 insus 的回复:
假设,如果你在程序中,把保存目录设为F:盘,但并不是所有客户端都是F:盘。 就是你设为一个每个客户端都有的,如C:盘,但某一客户端的C:盘空间不足,又怎样呢? 也就是说,客户环境是不相同的,这些在开发时,需要考虑的。
这是web 生产系统,所有客户端的环境都是一样的.
heycoder 2014-05-06
  • 打赏
  • 举报
回复
服务器指负责输出流。怎么保存流,是客户端的事儿,服务器它管不着
by_封爱 2014-05-06
  • 打赏
  • 举报
回复
这个跟asp.net或者MVC没一毛钱关系吧. 客户端下载就是那样的 假设我们用的是IE 下载会弹出选择位置 甚至弹出迅雷. 如果是Chrome 可能就默认下载了..也可能让你选择位置.. 这些都是客户端定义了 你网页没办法更改的...
threenewbee 2014-05-06
  • 打赏
  • 举报
回复
没办法,如何下载文件,这是客户端的浏览器决定的。
insus 2014-05-06
  • 打赏
  • 举报
回复
假设,如果你在程序中,把保存目录设为F:盘,但并不是所有客户端都是F:盘。 就是你设为一个每个客户端都有的,如C:盘,但某一客户端的C:盘空间不足,又怎样呢? 也就是说,客户环境是不相同的,这些在开发时,需要考虑的。
taozi318aaa 2014-05-06
  • 打赏
  • 举报
回复
这个可以 试试 public FileStreamResult DownLoad(string id) { if (System.IO.File.Exists(Server.MapPath("~/export_temp/" + id))) { string absoluFilePath = Server.MapPath("~/export_temp/" + id); return File(new FileStream(absoluFilePath, FileMode.Open), "application/octet-stream", Server.UrlEncode(id)); } return null; }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧