上传抛出文件不包含文件错误

upload throwing file does not contains a file error

提问人:Dunn 提问时间:10/27/2023 更新时间:10/27/2023 访问量:38

问:

我有一个非常简单的代码来上传文件

<form method="post" action="upload.cfm" enctype="multipart/form-data">
    <table>
        <tbody>
            <tr>
                <td><input type="file" name="uploadFile" id="uploadFile"></td>
            </tr>
            <tr>
                <td><input type="submit" name="Upload" id="Upload" value="Upload"></td>
            </tr>
        </tbody>
    </table>
</form>  

我的上传.cfm为:

<cfif isDefined('form.upload')>
    <cfset results = uploadAndInsertData('#FORM.uploadFile#')>
</cfif>  

上传和插入功能为;

<cffunction name="uploadAndInsertData" access="public" returntype="any">
    <cfargument name="uploadedFile" type="any" required="true">
    <cfset targetFolder = ExpandPath('documents')>
    <cfset success = true>

    <cfset cffile = UploadFile(
        FileField = "uploadedFile", 
        destination = "#targetFolder#"
    )>
    <cfset fileContent = fileRead("#targetFolder##uploadedFile#")>
</cffunction>

UploadFile 是来自 cflib.org 的一个函数

https://cflib.org/udf/uploadFile

它不断给我一个错误,

表单字段 uploadedFile 不包含文件。

20 :  
21 :      <!--- Upload to temp directory. --->
22 :      <cffile action="upload" filefield="#Arguments.FileField#" destination="#Arguments.TempDirectory#" nameconflict="MakeUnique">
23 :      <cfset tempPath = ListAppend(cffile.ServerDirectory, cffile.ServerFile, "\/")>
24 :  
冷融合 露西

评论


答:

4赞 rrk 10/27/2023 #1

问题出在您传递给函数的方式上。FileFieldUploadFile

FileField应该是您的名称。input[type="file"]uploadFile

<cfset cffile = UploadFile(
    FileField = "uploadFile",  <-----
    destination = "#targetFolder#"
)>

除此之外,您不需要调用,也无需将其传递给函数,只需执行即可。uploadAndInsertData('#FORM.uploadFile#')uploadAndInsertData()

<cffile aciton="upload">根据字段名称自动获取表单字段。

您需要更改

<cfset fileContent = fileRead("#targetFolder##uploadedFile#")>

<cfset fileContent = fileRead("#targetFolder##cffile.serverFIlename#")>