【问题标题】:Uploading the file names of my images to my database table将我的图像的文件名上传到我的数据库表
【发布时间】:2020-01-23 01:15:54
【问题描述】:

我在将图像的文件名上传或循环到我的数据库表时遇到问题。

我可以选择各种图像并将本地计算机上的选定图像上传到我指定的特定文件夹。将图像文件放入我的文件夹后,我遇到了一些困难,因为我想将刚刚插入文件夹的图像的文件名插入到我的数据库中。我正在尝试使用 cffile 参数来执行此操作。

我的问题:由于一次上传多个文件,我是否需要在 cfquery insert 上执行 cfloop 才能捕获名称并将其插入到我的数据库中?我对代码的尝试如下。上传工作得很好,但它在插入部分窒息。您认为可能是什么问题?

<cfparam name="form.fileUpload3" default="">
<cfif len(trim(form.fileUpload3))>
   <cffile action="uploadall" 
      fileField="fileUpload3" 
      destination="#cookie.c.webpathmultipleimages#" 
      accept = "image/jpeg, image/png, image/jpeg" 
      nameconflict="makeunique">

   <!---This is where i'm running into my issue--->
   <cfloop INDEX="i" LIST="#Form.fileUpload3#">
      <cfquery name="addtoimage">
         insert into image (imaid, imacomid, imaname) 
         Value (
           '00',
          '#cookie.communityID#',
          '#file.clientfile#'
         )
      </cfquery>
</cfif>

【问题讨论】:

  • 是的,您需要将其放入某种循环中。还可以使用&lt;cfqueryparam&gt; 来防止 SQL 注入。
  • 要查看发生了什么,请将 cfquery 标记替换为 cfoutput 标记。此外,在没有索引属性的情况下循环遍历列表看起来很可疑。
  • SQL 不正确。价值不应该是价值吗?
  • 描述在插入部分阻塞非常模糊。实际发生了什么?如果您遇到错误,请edit 您的问题包含完整的错误消息。此外,请查看cffile action=uploadAll 的文档。它返回一个包含文件信息的结构的array。您需要遍历该数组,而不是表单字段。

标签: coldfusion cfml cfquery cffile


【解决方案1】:

cffile 返回一个数组,但您使用了列表循环。所以,你得到了错误。尝试使用数组循环。

<cfif len( form.image )>
    <cffile action="uploadall" filefield="image" 
        destination="#ExpandPath('.\uploadImages\')#" 
        result="fileName" 
        nameconflict="makeunique">
    <cfloop array="#fileName#" index="image">
        <cfquery name="imageUpload" datasource="uploadMultipleImage">
            insert into uploadImage (imageName) 
            values 
            ( 
               <cfqueryparam value="#image.serverfile#" cfsqltype="cf_sql_varchar">
            )
        </cfquery>
    </cfloop>
</cfif>

【讨论】:

  • cffile 返回数组格式。但是您将它用于列表循环。所以,你得到了错误。您尝试使用数组循环。
  • 不要忘记将查询包装在事务中。
猜你喜欢
  • 1970-01-01
  • 2016-08-03
  • 2017-12-07
  • 2020-10-31
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 2020-04-08
相关资源
最近更新 更多