正在检索jpeg';s作为BLOBS在Windows中产生的结果与OS X不同,这是正常的还是我的代码

本文关键字:OS 不同 我的 代码 结果 jpeg 检索 Windows BLOBS 作为 | 更新日期: 2023-09-27 18:21:15

我正在连接到我的MS SQL server(2008),在那里我将JPG存储为BLOB文件,并在一个页面(displayImage.aspx)中检索它们,然后将其显示在其他页面上以显示图像。这适用于Windows机器上的所有浏览器。然而,从OS X机器来看,浏览器中显示了扩展数据,并且不显示图片。(屏幕截图:http://i.imgur.com/133I8.png)有什么建议吗?代码如下:

string image = Request.QueryString["image"];
if (image == null){
    image = "no_image.jpg";
}

    SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ToString());
    objConn.Open();
    string sTSQL =
                        "SELECT [data] " +
                        "FROM [DBTABLE] " +
                        "WHERE filename = '" + image + "'";
    SqlCommand objCmd = new SqlCommand(sTSQL, objConn);
    objCmd.CommandType = CommandType.Text;
    SqlDataReader dr = objCmd.ExecuteReader();
    dr.Read();
    Response.BinaryWrite((byte[])dr["data"]);
    objConn.Close();

正在检索jpeg';s作为BLOBS在Windows中产生的结果与OS X不同,这是正常的还是我的代码

您的响应中似乎没有提供MIME类型。如果你这样做了,浏览器就不必猜测了。

您是否尝试在Response.BinaryWrite()行下面添加此行(见下文)

Response.End();

听起来它适用于另一个可能相关的问题:读取二进制文件并使用Response.BinaryWrite()。。。