如何下载文件到本地

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


这个不是你自己指定了的么 D:\\行数据.xlsx
回复 点赞
hui1202 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 05月12日
WebClient wc = new WebClient(); string url = ""; wc.DownloadFile(url, "D:\\123.xlsx"); wc.Dispose(); 你第二个方法我试了可以,是不是服务器配置什么东西了.导致下载不来了.你在ie上直接访问资源,看看能不能下载下来
回复 点赞
Dear200892 05月12日
HttpWebRequest request = WebRequest.Create("http://*******/Home/Excel/行数据.xlsx") as HttpWebRequest;
向这个地址请求资源
Stream stream = new FileStream("D:\\行数据.xlsx", FileMode.Create);
将响应的数据,保存在运行程序电脑的D盘。
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告