2
我想讓我的客戶端從我的網站上下載文件。我想這樣的代碼:使用C#在ASP.Net中下載文件
string fName = Server.MapPath((new_exwork.FilePath));
FileInfo fi = new FileInfo(fName);
long sz = fi.Length;
Response.ClearContent();
Response.ContentType = MimeType(Path.GetExtension(fName));
Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", System.IO.Path.GetFileName(fName)));
Response.AddHeader("Content-Length", sz.ToString("F0"));
Response.TransmitFile(fName);
Response.End();
,但我得到以下異常:
無法因爲代碼優化或本機框上調用堆棧的頂部,以評估表達。
Mime類型功能
private static string MimeType(string Extension)
{
string mime = "application/octetstream";
if (string.IsNullOrEmpty(Extension))
return mime;
string ext = Extension.ToLower();
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (rk != null && rk.GetValue("Content Type") != null)
mime = rk.GetValue("Content Type").ToString();
return mime;
}
這可能是您的解決方案:http://support.microsoft.com/kb/312629/EN-US/ – 2011-11-22 22:39:31
的ContentType應該不是文件擴展名,但例如用於Word文件:應用程序/ msword或一個普通的二進制文件:應用/ OCTET-STREAM – Magnus
@Magnus根據'MimeType(字符串)'的作用,他可能已經在考慮這個問題了。 –