首页 新闻 赞助 找找看

ASP.NET文件下载的问题,在线急等。。

0
悬赏园豆:50 [已关闭问题]

我的网站上有个语音文件下载的功能,
语音文件的路径保存在A服务器数据库中,
语音文件保存在B服务器中。
我在本地运行调试可以下载语音文件并正常播放。但网站发布到A服务器上时下载的文件却不能播放。
我的代码如下:
        //当点击下载时
        if (e.CommandName == "Download")
        {
            string path = e.CommandArgument.ToString(); //获取数据库中语音文件的路径 如:D:\record\1.wav
            string path2 = path.Substring(path.LastIndexOf(":") + 1); //截取文件路径字符串 如:record\1.wav
     //获取Web.config中语音文件的IP地址 如:\\10.100.0.1\record\1.wav
            string filename = ConfigurationManager.ConnectionStrings["record"].ToString() + path2;
            FileInfo file = new FileInfo(filename);
            Response.Clear();
            Response.ContentType = "application/octet-stream";
            Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(path, System.Text.Encoding.UTF8));
            Response.Flush();
            Response.WriteFile(filename);
        } 

Mafer的主页 Mafer | 初学一级 | 园豆:80
提问于:2010-08-06 11:23
< >
分享
其他回答(2)
0

首先判断在A中能不能直接访问文件,如在地址栏中直接敲http://10.100.0.1/record/1.wav

dege301 | 园豆:2825 (老鸟四级) | 2010-08-06 12:30
0

你在数据库中存储的是绝对路径吗

 string path = e.CommandArgument.ToString(); //获取数据库中语音文件的路径 如:D:\record\1.wav

如果是,问题出在这。你开发机器上的程序位置和你服务器上的文件夹路径不见得就是一样的,你应该存储相对路径。“~\record\1.wav” 类似这种。 在下载的时候。转化为绝对路径下载。

邢少 | 园豆:10926 (专家六级) | 2010-08-06 14:31
0

B服务器开WEB服务了没有,需要下载的文件是否部署在IIS中。

按照一楼的说,直接在浏览器中打下载地址行不行。

Astar | 园豆:40805 (高人七级) | 2010-08-06 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册