【发布时间】:2024-01-16 06:21:01
【问题描述】:
我的 ASP 经典代码有问题。为了让您了解流程,该页面会将图像从特定目录上传到服务器,重命名文件,然后将文件保存在 SQL Server 2005 中以“图像”作为数据类型的字段中。这是我的代码:
<!-- #include file="class.mssqlconnect.asp" -->
<%
Const adTypeBinary = 1
Transcode = "S12345678"
strHDLocation = "c:\test\test.bmp"
strFileURL = Server.MapPath("signatures\"& Transcode &".bmp")
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1
objADOStream.LoadFromFile strHDLocation
'Set the stream position to the start
objADOStream.Position = 0
'this will upload and save the file at the same time
objADOStream.SaveToFile strFileURL
Response.Write("Uploaded")
'if file uploaded successfully
Dim sqlRun
sqlRun = "UPDATE Bioser SET Singature = (SELECT BulkColumn FROM OPENROWSET (BULK '" & Server.MapPath("signatures\"& Transcode &".bmp") & "', SINGLE_BLOB) AS Signature) WHERE serviceno = '" & Transcode & "'"
Conn.execute(sqlRun)
Conn.close
objADOStream.Close
Set objADOStream = Nothing
%>
我可以毫无问题地上传图片,但每次我将图片保存到数据库时,只会在 Singature 字段中保存“BLANK”(不是 Null)。我没有收到任何错误消息,我之前可以保存图像(我在图像的表格字段中看到一堆字符),我什至在 SQL 用户名中启用了“BULKADMIN”角色权限我正在使用...
我也已经尝试过使用下面的 SQL 语句:
"UPDATE Bioser SET Singature = (SELECT * FROM OPENROWSET(BULK '" & Server.MapPath("signatures\"& Transcode &".bmp") & "', SINGLE_BLOB) as Singature) WHERE ServiceNo = '" & Transcode & "'"
现在我已经陷入困境,我需要帮助...感谢那些将回答这个问题的人。
【问题讨论】:
标签: sql image sql-server-2005 asp-classic sql-update