代码如下:private void dataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="listen")
{
string ID = dataGrid.DataKeys[e.Item.ItemIndex].ToString();
string sql = "select record from table where id="+ID+"";
SqlDataReader Sdr = Class.ReturnDataReader(sql);
string path = Sdr[0].ToString();
if(!System.IO.File.Exists(path))
{
Response.Write("<script language='javascript'>alert('文件不存在!');</script>");
}
else
{
string url = path.Replace(@"d:\temp\","");
url = url.Replace("\\","/");
url = "http://202.168.194.124/"+url;
Response.Redirect(url);
}
}
if(e.CommandName=="down")
{
string ID = dataGrid.DataKeys[e.Item.ItemIndex].ToString();
string sql = "select record from table where id="+ID+"";
SqlDataReader Sdr = Class.ReturnDataReader(sql);
string path = Sdr[0].ToString();
if(!System.IO.File.Exists(path))
{
Response.Write("<script language='javascript'>alert('文件不存在!');</script>");
}
else
{
System.IO.FileInfo file = new System.IO.FileInfo(path);
Response.Clear();
Response.Charset="GB2312";
Response.ContentEncoding=System.Text.Encoding.UTF8;
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "audio/x-wav";
Response.WriteFile(file.FullName);
Response.End();
}
}
}以上代码点 试听(listen)按纽时,报错:HTTP 错误 404 - 找不到文件。但点 下载(down)按纽时,可以正常下载。我估计是代码string url = path.Replace(@"f:\temp\","");
url = url.Replace("\\","/");
url = "http://202.168.194.124/"+url;
Response.Redirect(url);
代码中url取得的路径问题。其中record字段存放的是音位文件路径(如:d:\temp\music\xinyang.wav)。202.168.194.124是本机外网IP,本机在局域网中的IP为192.168.1.123 。还请各位高手指点,这段代码该怎么写才能读取到音乐文件。(音乐文件是确实存在的)

解决方案 »

  1.   

    点试听的时候, URL地址栏得到的字符串是什么?
      

  2.   

    http://202.168.194.124/music/xinyang.wav
      

  3.   

    Response.Redirect(url);改为
    Response.Write("<script>location.href='" + url + "';</script>");
    我这边调试成功,你试一下
      

  4.   

    Response.Redirect(url);确保 这个url能够被访问
      

  5.   

    IE直接访问http://202.168.194.124/music/xinyang.wav都不行,
    先保证直接访问能ok, 我估计是 http://202.168.194.124/ 这个站点Mime-Type的问题!
      

  6.   

    那比如说我机子上有个文件,我怎么能这样直接访问它呢?
    http://localhost/music/aiqingzhuanyi.wav
      

  7.   

    只能访问网站根目录有以下的文件,不能越权访问到其它盘,或者以上的目录其二你的record是虚拟路径还是绝对路径,如果是虚拟的请加上server.mappath
      

  8.   

    好象是可以访问其他盘的,我的record字段里是绝对路径