FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();这些替换成使用webclient或者httpwebrequest方式下载文件或者文件服务器开共享,在iis将这个共享目录作为虚拟路径挂在你的网站下。
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();这些替换成使用webclient或者httpwebrequest方式下载文件或者文件服务器开共享,在iis将这个共享目录作为虚拟路径挂在你的网站下。
webclient httpwebrequest 百度了一下,似乎都是先在服务器本地中转了一道难道是我搜的不对?
/// 下载文件
/// </summary>
/// <param name="URL">下载文件地址</param>
/// <param name="Filename">下载后的存放地址</param>
public string DownloadFile(string URL, string filename)
{
try
{
System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)
System.Net.HttpWebRequest.Create(URL);
System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();
long totalBytes = myrp.ContentLength;
if (myrp.ContentLength != 0)
{
System.IO.Stream st = myrp.GetResponseStream();
//System.IO.Stream so = new System.IO.FileStream(filename,System.IO.FileMode.Create); Response.Clear();
long totalDownloadedByte = 0;
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length);
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename));
while (osize > 0)
{
totalDownloadedByte = osize + totalDownloadedByte;
Response.OutputStream.Write(by, 0, osize);
Response.Flush();
//so.Write(by, 0, osize);
osize = st.Read(by, 0, (int)by.Length);
}
Response.Close(); //long totalDownloadedByte = 0;
//byte[] by = new byte[1024];
//int osize = st.Read(by, 0, (int)by.Length);
//while (osize > 0)
//{
// totalDownloadedByte = osize + totalDownloadedByte;
// so.Write(by, 0, osize);
// osize = st.Read(by, 0, (int)by.Length);
//}
//so.Close();
st.Close();
return "success";
}
else
{
return "文件不存在";
}
}
catch (System.Exception e)
{
return "下载文件失败!" + e.ToString();
}
} 注释了的代码是本地处理方式
webclient httpwebrequest 百度了一下,似乎都是先在服务器本地中转了一道难道是我搜的不对?难道FileStream不是?