asp网站点击按钮下载文件服务器上的文件如何实现

yuyueshixian 2017-05-10 01:20:55
环境:公司内网。ASP网站使用iis架设在http://192.168.3.30:8060上,用户需要登陆网站后点击下载按钮下载\\10.100.10.100\company文件服务器上的文件aaa.zip。求下载文件按钮事件的写法?
本人刚接手此网站的维护,PC地址在192.168.3.150,使用visual Studio 2010进行编写。找到CSDN大神分享的下载方式,代码如下:
//WriteFile分块下载
protected void Button3_Click(object sender, EventArgs e)
{
string fileName = "aaa.zip";//客户端保存的文件名
string filePath = @“\\10.100.10.100\company”+ fileName;
//↑此处原作者使用的是Server.MapPath("DownLoadpath"),但是如果我这样写本地调试会认为路径不存在

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);

if (fileInfo.Exists == true)
{
const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[ChunkSize];

Response.Clear();
System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
while (dataLengthToRead > 0 && Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
iStream.Close();
Response.End();
}
else 弹出窗口:文件不存在
}

本地调试时是可以打开浏览器自带下载器并正常完成下载,只是文件较大时下载过程中页面其他按钮点击没有反应,猜想是因为没有使用异步下载?(VS2010应该也不支持异步下载吧?)
调试完成后将网站发布到服务器,然后远程登陆网站并点击下载按钮却会提示文件不存在。我有远程连接到服务器电脑并直接在资源管理器输入\\10.100.10.100是可以打开路径的。不知道为什么发布到服务器上会提示文件不存在。

总结问题:
1.代码发布到服务器上为何就无法实现下载了?如何修改?
2.如果可以请告诉我如何解决下载过程中页面按钮点击没有反应?
...全文
287 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
全栈极简 2017-05-17
  • 打赏
  • 举报
回复
不要使用共享目录的方式实现文件的下载,使用ftp或者http方式下载文件。
nitaiyoucala 2017-05-15
  • 打赏
  • 举报
回复
实现ftp下载

62,074

社区成员

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

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

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

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