下载电影的时候,怎么才能避免客户端看到路径,请各位前辈赐教,谢谢了

解决方案 »

  1.   

    你可把你的电影文件放在网站外,然后用户下载的时候,调用文件读取,形成二进制流给用户,这样,即可下载,又不会看到路径,还可以有效的控制权限,唯一不好的就是,耗用资源较大.
    以下是一个示例函数,你将你文件的绝对路径传递给它,即可实现下载.
    private void DownFile(string fileName)
    {
    FileInfo fi=new FileInfo(fileName);
    Response.Clear();
    Response.AddHeader("content-disposition","attachment;filename="+System.Web.HttpUtility.UrlEncode(fi.Name,System.Text.Encoding.UTF8));
    Response.ContentType="application/octet-stream";
    FileStream fs=fi.OpenRead();
    int bufferSize=1024;
    long size=fi.Length;
    byte[] buffer=new byte[bufferSize];
    BinaryReader br=new BinaryReader(fs);
    long curPos=0;
    while(size-curPos>bufferSize)
    {
    buffer=br.ReadBytes(bufferSize);
    Response.BinaryWrite(buffer);
    curPos+=bufferSize;
    }
    if(curPos<size)
    {
    buffer=br.ReadBytes(Convert.ToInt32(size-curPos));
    Response.BinaryWrite(buffer);
    }
    fs.Close();
    Response.Flush();
    Response.End();
    }