4

我只是想使用 ColdFusion 将文件上传到我的数据库。我了解如何将图像上传到目录,但我想将其直接放在数据库中。

我已将数据库字段设置为 varbinary(MAX) 以接受图像并使用存储过程来插入它。目前我将图像上传到我的文件系统的代码是:

<cfif isdefined("form.FileUploadImage")> 
            <cffile action="upload" filefield="FileUploadImage" destination="#uploadfolder#" nameconflict="overwrite" accept="image/*" > 
</cfif>

我显然遗漏了一些支持代码,但实际上我需要做的就是获取存储在内存中的文件的二进制表示,而不是文件系统。

有哪位高手可以帮忙吗?

谢谢,乔治

4

2 回答 2

7

像这样的东西?

<cfquery>
  INSERT INTO Image (Jpg) 
  VALUES (
    <cfqueryparam CFSQLType="CF_SQL_BLOB"
                  value="#ToBase64(FileReadBinary(uploadedFilePath))#">
</cfquery>

稍后,如果您想将图像流式传输回浏览器,请使用<cfimage>(CF8+)

于 2010-03-08T00:28:42.840 回答
5

绕过保存文件到文件系统的方法:

<cfqueryparam cfsqltype="cf_sql_blob"
              value="#FileReadBinary(FORM.FileUploadImage)#">
于 2010-07-14T18:40:49.203 回答