问题描述
- 从服务器上下载文件到本地不成功
-
当项目在本地时正常,当项目布在服务器上面,下载的文件存储在服务器上。代码如下,怎么才能让文件保存在本地
Uri downUri = new Uri(@"http://wap.incake.net/voiceorderFile/NO7HhefxdIeQqzvbfw7EP8_U1Up3Vdzw0YfQ5vB_oaMQoZq4bfa5P-T-SqixZtXP8LK.mp3");
//建立一个WEB请求,返回HttpWebRequest对象HttpWebRequest hwr = (HttpWebRequest)WebRequest.Create(downUri);
//设置接收对象的范围为0-10000000字节。hwr.AddRange(0, 10000000); //流对象使用完后自动关闭 using (Stream stream = hwr.GetResponse().GetResponseStream()) { //文件流,流信息读到文件流中,读完关闭 using (FileStream fs = File.Create(@"E:6666.mp3")) { //建立字节组,并设置它的大小是多少字节 byte[] bytes = new byte[102400]; int n = 1; while (n > 0) { //一次从流中读多少字节,并把值赋给N,当读完后,N为0,并退出循环 n = stream.Read(bytes, 0, bytes.Length); fs.Write(bytes, 0, n); //将指定字节的流信息写入文件流中 } } }
解决方案
A)你把路径 E:
改为服务器 IIS 项目所在“本地路径”之下的某个子目录,这样可以通过页面上一个链接从你的网站上下载该文件。
B)你用 Response.WriteFile()
直接向客户端返回文件。
总之服务器上是不能直接写客户端硬盘的文件的,只能由客户端下载后手工保存。除非你去做客户端的WinForm程序。
时间: 2024-09-11 18:58:10