我在服務器中有一個文件。使用ASP.NET從服務器下載所有類型的文件
我想下載這個文件。
我使用此代碼
try
{
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.BufferOutput = true;
if (File.Exists(Server.MapPath("~/Upload/" + file)))
{
Response.AddHeader("Content-Disposition", "attachment; filename=" + file);
Response.ContentType = "application/octet-stream";
Response.WriteFile(("~/Upload/" + file));
Response.End();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
else
{
if (Request.UrlReferrer != null)
{
Type csType = GetType();
string jsScript = "alert('File Not Found');";
ScriptManager.RegisterClientScriptBlock(Page, csType, "popup", jsScript, true);
}
}
}
catch (Exception ex)
{
string errorMsg = ex.Message;
ScriptManager.RegisterClientScriptBlock(Page, GetType(), "popup", errorMsg, true);
}
但是,當我用這個,我得到錯誤
無法因爲代碼優化或本機框上調用堆棧的頂部,以評估表達。
在代碼
到Response.End();
如何下載所有類型的文件?
非常感謝,這是一個Web形式。我刪除'Response.End()HttpContext.Current.ApplicationInstance.CompleteRequest()',我不會收到錯誤,但不要下載文件。 – Niloo
你能夠調試你的代碼嗎?你能否逐步瀏覽你的代碼,看看是否有任何異常被拋出或被捕獲?考慮刪除你的'try/catch'塊。 – Dai
是的,我調試它,但不會拋出或捕獲任何異常。 – Niloo