///
/// 保存远程文件到本地
///
/// 远程文件URL
/// 保存的本地路径
///
public bool DownloadFile(string url, string file)
{
try
{
(new System.Net.WebClient()).DownloadFile(url,file);
return true;
}
catch { }
return false;
}
public void Download(string strURL,string strName)
{
string strRootDir = "D:\\DownLoadRecode";
if (!Directory.Exists(strRootDir))
{
Directory.CreateDirectory(strRootDir);
}
WebClient client = new WebClient();
string strFileName = string.Empty;
string strFileDir = string.Empty;
string strSavePath = string.Empty;
string[] arrName = strName.Split('/');
if (arrName != null && arrName.Length > 1)
{
strFileDir = arrName[0];
strFileName = arrName[1];
strSavePath = strRootDir + "\\" + strFileDir;
if (!Directory.Exists(strSavePath))
{
Directory.CreateDirectory(strSavePath);
}
}
else
{
strFileName = strName;
strSavePath = strRootDir + "\\Temp";
if (!Directory.Exists(strSavePath))
{
Directory.CreateDirectory(strSavePath);
}
}
strSavePath += "\\" + strFileName;
if (!File.Exists(strSavePath))
{
client.DownloadFile(strURL, strSavePath);
}
FileInfo xFileInfo = new FileInfo(strSavePath);
Response.Clear(); //清除缓冲区流中的所有内容输出
Response.ClearHeaders(); //清除缓冲区中的所有头
Response.Buffer = false; //设置缓冲输出为 false
//设置输出流的 HTTP MIME 类型为 application/octet-stream
Response.ContentType = "audio/x-wav";
Response.Charset = "GB2312";
Response.ContentEncoding = Encoding.UTF8;
//将 HTTP 头添加到输出流
Response.AppendHeader("Content-Disposition",
"p_w_upload;filename=" + HttpUtility.UrlEncode(strFileName));
Response.AppendHeader("Content-Length", xFileInfo.Length.ToString());
//将指定的字符直接写入HTTP内容输出流
Response.WriteFile(strSavePath);
Response.Flush();
Response.End();
}
文章名称:C#保存远程文件到本地
文章出自:
http://bzwzjz.com/article/gjcipp.html