我有一個文件上傳和下載使用ajaxFileUploader和2個處理程序。無法加載圖像從數據庫
ajaxFileUploader代碼:
$.ajaxFileUpload
(
{
url: 'AjaxFileUploader.ashx?user=' + userId,
secureuri: false,
fileElementId: 'uploadControl',
dataType: 'json',
data: '{}',
success: function (mydata) {
alert("Image Successfully Uploaded");
$('#imgdefaultphoto').attr('src', 'ImageRetrieval.ashx?user=' + userId);
},
error: function() {
}
}
)
AjaxFileUploader.ashx代碼:
public void ProcessRequest(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
string path = context.Server.MapPath("~/Temp");
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
var file = context.Request.Files[0];
string userid = context.Request.QueryString["user"];
string fileName;
if (HttpContext.Current.Request.Browser.Browser.ToUpper() == "IE")
{
string[] files = file.FileName.Split(new char[] { '\\' });
fileName = files[files.Length - 1];
}
else
{
fileName = file.FileName;
}
string fileType = file.ContentType;
string strFileName = fileName;
int filelength = file.ContentLength;
byte[] imagebytes = new byte[filelength];
file.InputStream.Read(imagebytes, 0, filelength);
DBAccess dbacc = new DBAccess();
dbacc.saveImage(imagebytes, userid);
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var result = new { name = file.FileName };
context.Response.Write(serializer.Serialize(result));
}
ImageRetrieval.ashx代碼:
public void ProcessRequest(HttpContext context)
{
string userId = HttpContext.Current.Request.QueryString["user"];
if (userId != null)
{
DBAccess dbacc = new DBAccess();
DataTable dt = dbacc.getImage(userId);
context.Response.ContentType = "image/png";
context.Response.BinaryWrite((byte[])dt.Rows[0]["UserImage"]);
context.Response.Flush();
}
else
{
context.Response.Write("No Image Found");
}
}
圖像被上傳在數據庫中,但是當我嘗試加載它並將其附加到我的img標籤,圖像標籤顯示破碎的圖像。我不知道是什麼原因或似乎是問題。任何幫助將不勝感激。謝謝!
編輯了一些行。仍然沒有運氣。
代碼看起來還好我說,你可以驗證什麼在Ajax調用F12鉻發生的事情,你得到正確的結果那裏並使用context.Response.Flush();二進制寫入後。 – SSA 2012-07-11 10:13:55
糟糕!忘了做f12。我有一些錯誤。加載資源失敗:服務器響應狀態爲404(未找到)。處理程序的名稱與.attr src衝突。改變了它,但仍然是相同的錯誤。 – ljpv14 2012-07-11 10:37:02
然後你處理程序沒有註冊。 – SSA 2012-07-11 10:38:55