如何下载文件到本地

wctmac123 2021-05-12 11:14:43
我在服务器里的excel文件夹下放了一个excel文件,然后我想下载到我本地的硬盘上,但是我用下面的方法下载是没问题,但是都是下载到了服务器的D盘,而不是我本地,请问如何才能下载到本地呢,我试了下面两种方法都不行
方法1:
HttpWebRequest request = WebRequest.Create("http://*******/Home/Excel/行数据.xlsx") as HttpWebRequest;
//发送请求并获取相应回应数据
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
Stream responseStream = response.GetResponseStream();

//创建本地文件写入流
Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create);

byte[] bArr = new byte[1024];
int size = responseStream.Read(bArr, 0, (int)bArr.Length);
while (size > 0)
{
stream.Write(bArr, 0, size);
size = responseStream.Read(bArr, 0, (int)bArr.Length);
}
stream.Close();
responseStream.Close();

方法2:WebClient client = new WebClient();
client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx");
...全文
2341 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
awehrkawhierc 2021-05-16
  • 打赏
  • 举报
回复
- Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create); Stream stream = new FileStream("行数据.xlsx", FileMode.Create); Stream stream = new FileStream("%HOMEPATH%\行数据.xlsx", FileMode.Create);
luj_1768 2021-05-16
  • 打赏
  • 举报
回复
哈哈,服务器对一些数据有保护措施。你的问题,别人无法复现吧?还是需要把你家的服务器的系统配置和安全机制分析清楚才行。
hui1202 2021-05-15
  • 打赏
  • 举报
回复
引用 14 楼 wang_peng 的回复:
[quote=引用 12 楼 hui1202 的回复:][quote=引用 3 楼 wctmac123 的回复:][quote=引用 1 楼 欧皇神降术 的回复:]新手?Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create); client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx"); 这个不是你自己指定了的么 D:\\行数据.xlsx
现在是下载到了服务器的D盘,而不是我自己电脑的D盘[/quote] 大哥。。。你这写法就是服务器下载啊。。。 服务器还能访问你机器的D盘? 要保存的时候自己选择盘符的[/quote] 不是的,这样的写法可以下载到本地[/quote] 那是在自己机器上跑这段代码才行。。不然你通过url访问,按钮点击下载的永远是在服务器上啊
闪耀星星 2021-05-15
  • 打赏
  • 举报
回复
WebClient DownloadFile
russle831 2021-05-14
  • 打赏
  • 举报
回复
丁劲犇 2021-05-13
  • 打赏
  • 举报
回复
另外搭建一个ftp就可以了。浏览器直接下载到本地
tong386 2021-05-13
  • 打赏
  • 举报
回复
根据问题描述,你的程序应该是web程序。 Web程序运行在服务器端,服务器接收下载请求后: 你只需要在服务端把你的文件用流的方式response到客户端就行了。 你不能替客户决定保存文件在哪里。 浏览器会在客户端弹窗打开弹窗,由客户决定保存。
wang_peng 2021-05-13
  • 打赏
  • 举报
回复
方便的话,你把真实的地址写出来了,我试试看看是不是你们服务器配置的事
wang_peng 2021-05-13
  • 打赏
  • 举报
回复
引用 12 楼 hui1202 的回复:
[quote=引用 3 楼 wctmac123 的回复:][quote=引用 1 楼 欧皇神降术 的回复:]新手?Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create); client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx"); 这个不是你自己指定了的么 D:\\行数据.xlsx
现在是下载到了服务器的D盘,而不是我自己电脑的D盘[/quote] 大哥。。。你这写法就是服务器下载啊。。。 服务器还能访问你机器的D盘? 要保存的时候自己选择盘符的[/quote] 不是的,这样的写法可以下载到本地
wctmac123 2021-05-13
  • 打赏
  • 举报
回复
引用 12 楼 hui1202 的回复:
[quote=引用 3 楼 wctmac123 的回复:][quote=引用 1 楼 欧皇神降术 的回复:]新手?Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create); client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx"); 这个不是你自己指定了的么 D:\\行数据.xlsx
现在是下载到了服务器的D盘,而不是我自己电脑的D盘[/quote] 大哥。。。你这写法就是服务器下载啊。。。 服务器还能访问你机器的D盘? 要保存的时候自己选择盘符的[/quote] 所以我才提问啊,这种写法无法自己选择保存盘符,直接下载的,你有方案就分享下呗
weixin_46355106 2021-05-13
  • 打赏
  • 举报
回复
wctmac123 2021-05-13
  • 打赏
  • 举报
回复
引用 15 楼 wang_peng 的回复:
方便的话,你把真实的地址写出来了,我试试看看是不是你们服务器配置的事
已解决,是公司系统原有框架层的代码起了冲突
  • 打赏
  • 举报
回复
IIS下载, 是没办法 指定 服务器文件下载 到 客户机器哪个盘的。 都是下载到 网页默认路径的, 。EXE文件下载可以选择盘符的。 或者你用JS控件下载。 网页没权利访问客户盘符
wctmac123 2021-05-12
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
我就只想问问,你这代码在那里运行的
代码运行在服务器里,我想实现从服务器下载一个excel到我本地电脑d盘
wctmac123 2021-05-12
  • 打赏
  • 举报
回复
引用 1 楼 欧皇神降术 的回复:
新手?Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create); client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx"); 这个不是你自己指定了的么 D:\\行数据.xlsx
现在是下载到了服务器的D盘,而不是我自己电脑的D盘
wanghui0380 2021-05-12
  • 打赏
  • 举报
回复
我就只想问问,你这代码在那里运行的
欧皇神降术 2021-05-12
  • 打赏
  • 举报
回复
新手?Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create);
client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx");


这个不是你自己指定了的么 D:\\行数据.xlsx
hui1202 2021-05-12
  • 打赏
  • 举报
回复
引用 3 楼 wctmac123 的回复:
[quote=引用 1 楼 欧皇神降术 的回复:]新手?Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create); client.DownloadFile("http://******/Home/Excel/行数据.xlsx", "D:\\行数据.xlsx"); 这个不是你自己指定了的么 D:\\行数据.xlsx
现在是下载到了服务器的D盘,而不是我自己电脑的D盘[/quote] 大哥。。。你这写法就是服务器下载啊。。。 服务器还能访问你机器的D盘? 要保存的时候自己选择盘符的
wang_peng 2021-05-12
  • 打赏
  • 举报
回复
WebClient wc = new WebClient(); string url = ""; wc.DownloadFile(url, "D:\\123.xlsx"); wc.Dispose(); 你第二个方法我试了可以,是不是服务器配置什么东西了.导致下载不来了.你在ie上直接访问资源,看看能不能下载下来
Dear200892 2021-05-12
  • 打赏
  • 举报
回复
HttpWebRequest request = WebRequest.Create("http://*******/Home/Excel/行数据.xlsx") as HttpWebRequest;
向这个地址请求资源
Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create);
将响应的数据,保存在运行程序电脑的D盘。
加载更多回复(5)

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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