我的网站上有个语音文件下载的功能,
语音文件的路径保存在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);
}
你在数据库中存储的是绝对路径吗
string path = e.CommandArgument.ToString(); //获取数据库中语音文件的路径 如:D:\record\1.wav
如果是,问题出在这。你开发机器上的程序位置和你服务器上的文件夹路径不见得就是一样的,你应该存储相对路径。“~\record\1.wav” 类似这种。 在下载的时候。转化为绝对路径下载。
B服务器开WEB服务了没有,需要下载的文件是否部署在IIS中。
按照一楼的说,直接在浏览器中打下载地址行不行。