0
好吧,我一直在這個工作不停,並做了大量的搜索。從數據庫中拉出圖像時無法顯示圖像。如果我嘗試去手動處理鏈接,我會收到一條消息,指出「圖像[Image]無法顯示,因爲它包含錯誤」。我之前在數據庫中有一些舊圖像,並首先正確顯示這些圖像。但現在,如果我更新圖像,它會給我這個錯誤,當試圖查看它們。HttpHandler [Image]無法顯示,因爲它包含錯誤
上傳代碼。
if (fileuploadImage.HasFile)
{
if (IsValidImage(fileuploadImage))
{
int length = fileuploadImage.PostedFile.ContentLength;
byte[] imgbyte = new byte[length];
HttpPostedFile img = fileuploadImage.PostedFile;
img.InputStream.Read(imgbyte, 0, length);
if (mainImage == null)
{
ProfileImage image = new ProfileImage();
image.ImageName = txtImageName.Text;
image.ImageData = imgbyte;
image.ImageType = img.ContentType;
image.MainImage = true;
image.PersonID = personID;
if (image.CreateImage() <= 0)
{
SetError("There was an error uploading this image.");
}
}
else
{
mainImage.ImageName = txtImageName.Text;
mainImage.ImageType = img.ContentType;
mainImage.ImageData = imgbyte;
mainImage.MainImage = true;
mainImage.PersonID = personID;
if (!mainImage.UpdateImage())
{
SetError("There was an error uploading this image.");
}
}
}
else
{
SetError("Not a valid image type.");
}
這裏是我的圖像處理程序:
public class ImageHandler : IHttpHandler
{
public bool IsReusable
{
get
{
return false;
}
}
public void ProcessRequest(HttpContext context)
{
int imageid = Parser.GetInt(context.Request.QueryString["ImID"]);
ProfileImage image = new ProfileImage(Parser.GetInt(imageid));
context.Response.ContentType = image.ImageType;
context.Response.Clear();
context.Response.BinaryWrite(image.ImageData);
context.Response.End();
}
這是如何我稱它 「?〜/ ImageHandler.ashx IMID =」 + Parser.GetString(image.ImageID)
我正在使用數據類型圖像在sql服務器來存儲此。
編輯:
我還發現,如果我把周圍context.Response.end(一個嘗試catch)它示數出來說「無法評估的代碼,因爲本地幀...」
也許MemoryStream沒有被重置到原來的位置? –