0
我有一個FileHandler.ashx
實現IHttpHandler
。這個處理程序所做的唯一的事情就是獲取文件並通過context.Response
返回。HttpHandler不在服務器上呈現圖像
即使在發佈它之後(在本地計算機上),它在我的本地單元中也能正常工作。雖然在服務器上,它只有在我通過Visual Studio運行網站時纔有效,但如果我訪問已發佈的網站(如http://url.to.site/),則它不起作用。
這是個什麼樣子我的本地機器上運行時一樣(直通Visual Studio或發佈的網站),並直通Visual Studio中的服務器計算機上:
這是從ProcessRequest
方法FileHandler
的一個片段:
var strExtenstion = Path.GetExtension(file);
var fileInfo = new FileInfo(file);
context.Response.Clear();
context.Response.ClearContent();
context.Response.AppendHeader("content-length", file.Length.ToString());
if (strExtenstion == ".pdf") { context.Response.ContentType = "application/pdf"; }
else if (strExtenstion == ".png") { context.Response.ContentType = "image/png"; }
else if (strExtenstion == ".jpg") { context.Response.ContentType = "image/jpeg"; }
else if (strExtenstion == ".gif") { context.Response.ContentType = "image/gif"; }
else if (strExtenstion == ".bmp") { context.Response.ContentType = "image/bmp"; }
else if (strExtenstion == ".txt") { context.Response.ContentType = "text/plain"; }
else {
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);
context.Response.ContentType = "application/octet-stream";
}
context.Response.WriteFile(fileInfo.FullName);
file
是文件的路徑。
** UPDATE **
如果這將幫助:我使用的服務器是正在使用Plesk保持GoDaddy的服務器。
這個答案早該過期了。 XD – dunli