html - ColdFusion uploadall,上传多个文件,AJAX,插入MySQL表
问题描述
我是 ColdFusion 的新手。我正在尝试将多个文件上传到 MySQL 数据库中。不幸的是,只有一个文件被插入而不是多个。如何插入多个文件?我需要将我的数据库插入包含在 cfloop 中吗?这是我的代码......
这是 HTML 部分。我也在使用引导文件输入
<div class="form-group">
<div class="file-loading">
<input name="buttonAction" type="file" value="Upload File"
title="Upload File" id="UploadFile" data-browse-on-zone-click="true"
accept=".pdf,.txt,.doc,.docx,.pptx,.xls,.xlsx, .rtf, .msg,.jpg,.png,.gif,.tiff" multiple>
</input><br><br>
</div>
</div>
这是我表单上的上传点击事件...
$("#UploadFile").click(function() {
$('#UploadFile').fileinput('upload');
var model_data = $("#frmIssue").serializeArray();
$.each(model_data,function(key,input)
{
formData.append(input.name,input.value);
});
for (var value of formData.values()) {
console.log(value);
}
var formData = new FormData(document.getElementById("frmIssue"));
$.ajax({
url: 'FileUtility.cfc?method=uploadFiles&fkIssueId=#tmpIssueUUID#&fkUserId=#me.getId()#',
type: 'POST',
data: formData,
enctype: 'multipart/form-data',
processData: false,
contentType: false
}).done(function(response){
document.getElementById('thisAttachment').value="";
$('#results').empty();
$('#results').load('<cfoutput>#root#</cfoutput>page.viewattachments',{'tmpIssueID':'<cfoutput>#tmpIssueUUID#</cfoutput>','pid':'<cfoutput>#URL.pid#</cfoutput>'});
//alert("Attachment loaded successfully.");
$('#alertModalTitle').html('Attachment loaded successfully.');
$('#alertModalBody').html('All attachments are listed below');
$('#alertModalFooter').html('');
$('#alertModal').modal('show');
}).fail(function(jqXHR,textStatus,errorMessage){
$('#results').empty();
$('#results').html(errorMessage);
//alert("Attachment unsuccessful.\n"+errorMessage);
$('#alertModalTitle').html('Attachment error:');
$('#alertModalBody').html(errorMessage);
$('#alertModalFooter').html('');
$('#alertModal').modal('show');
});
});
我的 AJAX 调用是在 FileUtility.cfc 文件中对这个函数进行的,用 ColdFusion 编写...
<cffunction name="uploadFiles" access="remote" output="false" returntype="String">
<cfargument name="fkIssueId" type="string" required="true" default="" />
<cfargument name="fkUserId" type="string" required="true" default="" />
<cfset var mypath = "" />
<cfset var mydirectory = "C:\ColdFusion10\cfusion\wwwroot\MyApp\attachments" />
<cfset var mypathtemp = "" />
<cfset var newfile = "" />
<cfset var newfilename = "" />
<cfset var newfileext = "" />
<cfset var strOriginalFile = "" />
<cfset var strOriginalFileExt = "" />
<cfset var strOriginalFileName = "" />
<cfset var strUploadedNewFile = "" />
<cfset var strUploadedNewFileExt = "" />
<cfset var strUploadedNewFileName = "" />
<cfset mypath = #mydirectory# & "\" & #arguments.fkIssueId# & "\" />
<cfif NOT directoryExists("#mypath#")>
<cfdirectory directory="#mypath#" action="create" />
</cfif>
<cfset mypathtemp = #mydirectory# & "\" & #arguments.fkIssueId# & "\" & #arguments.fkUserId# & "\" />
<cfif NOT directoryExists("#mypathtemp#")>
<cfdirectory directory="#mypathtemp#" action="create" />
</cfif>
<cffile action="uploadall" destination="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#" nameconflict="makeunique" result="myupload" />
<cfset str.STATUS = 200 />
<cfset str.Message = "Passed" />
<cfoutput>#SerializeJSON(str)#</cfoutput>
<cfset strUploadedNewFileExt = myupload[1].ServerFileExt>
<cfset strUploadedNewFile = getCleanedUpFile(file=myupload[1].ServerFile) />
<cffile action="rename" source="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#\#myupload[1].ServerFile#" destination="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#\#strUploadedNewFile#" />
<cfset strUploadedNewFileName = #reverse(listRest(reverse(strUploadedNewFile),"."))#>
<cfset bdoesExist = #doesFileNameExist(fkIssueId=arguments.fkIssueId,file=strUploadedNewFile)#>
<cfif #doesFileNameExist(fkIssueId=arguments.fkIssueId,file=strUploadedNewFile)# gt 0>
<cfset iFileName = getFileName(file=strUploadedNewFile,fkIssueId=arguments.fkIssueId) />
<cfset iFile = getFile(file=strUploadedNewFile,fkIssueId=arguments.fkIssueId) />
<cfset strOriginalFileExt = #strUploadedNewFileExt# />
<cfset strOriginalFile = #strUploadedNewFile# />
<cfset strOriginalFileName = #strUploadedNewFileName# />
<cfset iTotalCount = getFileCount(file=iFile,fkIssueId=arguments.fkIssueId) />
<cfif #iTotalCount#>
<cfset newCount = #iTotalCount# + 1>
<cfelse>
<cfset newCount = 1>
</cfif>
<cfset newfile = "#iFileName#_V#NumberFormat(newcount,'0000')#.#strOriginalFileExt#">
<cfset newfilename = "#iFileName#_V#NumberFormat(newcount,'0000')#">
<cfset newfileext = #strUploadedNewFileExt#>
<cffile action="rename" source="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#\#strUploadedNewFile#" destination="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#\#newfile#" />
<cffile action="move" source="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#\#newfile#" destination="#mydirectory#\#arguments.fkIssueId#\#newfile#" />
<cfdirectory directory="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#" action="delete" />
<cfset strOriginalFile = iFile />
<cfset strOriginalFileName = iFileName />
<cfelse>
<cfset strOriginalFile = #strUploadedNewFile#>
<cfset strOriginalFileExt = #strUploadedNewFileExt#>
<cfset strOriginalFileName = #strUploadedNewFileName#>
<cfset newfile = #strUploadedNewFile#>
<cfset newfilename = #strUploadedNewFileName#>
<cfset newfileext = #strUploadedNewFileExt#>
<cffile action="move" source="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#\#newfile#" destination="#mydirectory#\#arguments.fkIssueId#\#newfile#" />
<cfdirectory directory="#mydirectory#\#arguments.fkIssueId#\#arguments.fkUserId#" action="delete" />
</cfif>
<cfquery>
INSERT INTO tbl_attachments
(
id,
Attachment,
AttachmentName,
AttachmentExt,
OrigAttachment,
OrigAttachmentName,
fkIssueId,
final,
fkUserId,
Dateuploaded
)
VALUES (
'#CreateUUID()#',
'#newfile#',
'#newfilename#',
'#newfileext#',
'#strOriginalFile#',
'#strOriginalFileName#',
'#arguments.fkIssueId#',
0,
'#arguments.fkUserId#',
#createodbcdatetime(now())#
)
</cfquery>
</cffunction>
先谢谢了。。。。
解决方案
推荐阅读
- scala - 如何计算特定列值的 min max avg 并将其存储在新列中?
- android - Play 商店拒绝我的应用获取敏感权限
- corda - 如何将数据插入corda?
- reactjs - TypeError:属性存在时无法读取未定义的属性
- java - 在 firebase 中保存数据时出现问题,我收到 a:""b:""c:""d:"" 而不是真实姓名
- html - 如何使用 CSS 在 webview 中显示图像
- couchdb - 多个数据库会是最好的方法吗?
- internet-explorer - IE11 iframe 缓存内容编码错误
- angular - Internet Explorer 11 - 如果 GET URL 为“长”,则 OPTIONS 请求失败
- java - 无法解析符号“文件”