Httphandler版本Aspx代码写入图像文件

时间:2010-03-31 16:12:39

标签: asp.net image httphandler

我们在使用HttpHandler与Aspx后面的代码页面时遇到了文件创建的差异。

我们正在从sql server数据库的“Image”字段中读取保存的jpg / png图片作为字节数组,并在服务器中创建一个物理文件。

Aspx Page和Httphandler都使用下面粘贴的相同代码。

//Begin

int docID = Convert.ToInt32(Request.QueryString["DocID"]);

var docRow = documentDB.GetDocument(docID);

// Retrieve the physical directory path for the Uploads subdirectory

string destDir = Server.MapPath("../../Uploads").ToString() + "\\";

string strFileName = destDir + DateTime.Now.ToFileTime() + "_" + docRow.DocName.ToString();

FileStream fs = new FileStream(strFileName, FileMode.CreateNew, FileAccess.Write);

fs.Write(docRow.DocData, 0, docRow.DocData.Length);

fs.Flush();

fs.Close();

// End 

创建文件后,只能在Aspx Code Behind中以jpg / png图像查看。 在HttpHandler的情况下,它不是有效的图像。

对此行为/缺少链接/解决步骤的任何想法都会有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

最后隔离不同的步骤,确定问题是存储在数据库表中的数据。

消除此问题的方法是在上传文件期间,在服务器本地系统上创建物理文件。将此文件读入字节数组并存储到数据库表中。 (可能是编码问题)