我正在尝试实现一个HTML5输入字段,让用户选择多个文件进行上传。我的表格中有以下内容:
<form method="post" enctype="multipart/form-data" action="index.cfm">
<input type="file" name="Images" id="Images" multiple="multiple" accept="image/jpeg, image/gif, image/png, application/zip" />
...
我可以在浏览器中选择多个文件,然后单击upload,但我不确定如何使用ColdFusion处理表单post。我原以为下面的命令会起作用,但这只会上传我选择的最后一个文件:
<cfloop list="#attributes.Images#" index="Image">
<cffile
destination = "#ExpandPath(Trim(request.TempFolder))#"
filefield = "Images"
action = "upload"
nameconflict = "MakeUnique"
result = "UploadedTempFile"
>
<cfoutput>#UploadedTempFile.serverFile#<br /></cfoutput>
</cfloop>
有人能向我解释一下如何循环通过我的一个表单域提交的所有文件,以便我可以单独处理这些文件吗?
发布于 2018-08-08 22:33:10
fileUploadAll()
/<cffile action="uploadAll">
允许你上传所有文件,也可以上传一个<input type="file" multiple>
的多个文件。
尽管它总是处理一个请求的所有文件,也就是说,它不区分不同的文件输入,你可能想要不同的处理方式,例如,通过accept
参数设置不同的允许MIME类型,或者为每个输入将文件上传到不同的位置。
因此,我在Adobe ColdFusion和Lucee issue tracker上创建了一个增强请求。
基本思想是更改fileUpload()
函数和<cffile action="upload">
,以便在表单域有多个文件时自动返回一个数组,或者如果这会导致兼容性问题,则向控制它的false
添加一个新参数multiple
defaulting。
https://stackoverflow.com/questions/7338530
复制相似问题