作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 this question 获取了一些代码对于多文件上传,效果很好,但 cffile 会覆盖 cffile.serverFile ,因此在 parm 转储中我得到的唯一文件名是最后上传的一个,不是全部。
我尝试循环它,每次都附加一个数组,但仍然是同样的问题。看来 cffile 正在一次性上传所有选定的文件。在 this question OP 说他用正确的数据做了 JSON 响应,但我不知道该怎么做,因为无论如何我都无法取回所有名称。
调用者:
<script>
$(document).ready(function() {
$('#multiFileFrm').submit(function(event){
event.preventDefault();
$.each($('#multiFile')[0].files, function(i, file) {
var formData = new FormData();
formData.append('file-0', file);
ajaxUpload(formData);
});
});
function ajaxUpload(formData) {
console.log("ajaxUpload function called");
$.ajax({
type: 'POST',
url: "ajax/AJAX_multiUploadTest.cfm",
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(data) {
$('#callback').html(data);
},
error: function(data) {
console.log(data);
}
});
}
});
</script>
<form method="post" enctype="multipart/form-data" id="multiFileFrm">
<input type="file" name="multiFile" id="multiFile" multiple="multiple" />
<input type="submit" id="submitFrm" value="Submit" />
</form>
<div id="callback"></div>
AJAX_multiUploadTest.cfm:
<cftry>
<cfobject component="code/profile" name="pro">
<cfset parm={}>
<cfset parm.userID=session.visitor.user.ID>
<cfset parm.database=application.datasource>
<cfset parm.form=form>
<cfset path="#application.directory#/data/dev/">
<cfif NOT DirectoryExists(path)><cfdirectory action="create" directory="#path#"></cfif>
<cffile action="upload" filefield="file-0" destination="#path#" nameConflict="makeUnique">
<cfset upload="#application.directory#/data/dev/#cffile.serverfile#">
<cfdump var="#parm#" label="parm" expand="no">
<cfcatch type="any">
<cfdump var="#cfcatch#" label="cfcatch" expand="no">
</cfcatch>
</cftry>
最佳答案
哇,通过阅读我自己的帖子,我已经解决了这个问题。回调文件在 JavaScript 中循环调用,因此每次都会覆盖变量。为了存储所有文件名,我只是将它们存储在 session 变量中:
<cfset arrayAppend(session.visitor.user.tempData, "#application.domain#data/dev/#cffile.serverfile#")>
然后输出所有上传的文件,并由其他函数处理后,也许将其存储在数据库中,您可以清空数组!
希望这对某人有帮助:)
关于javascript - Coldfusion Ajax 多文件上传 - CFFile 覆盖 ServerFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23095985/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!