【发布时间】:2011-08-07 14:43:57
【问题描述】:
这是我的情况。我有一个照片管理页面,其中包括 1)照片上传模板 2)照片详细信息模板 3)特色照片模板 4)照片库和 5)动态导航栏。最初,照片上传模板设置为提交给自己并使用cffile 上传新照片的表单。在我尝试添加 jquery 回调以在成功上传时刷新详细信息、特色照片和图库容器之前效果很好 - 但我发现在提交表单并上传照片后,我附加到表单提交的任何其他功能按钮不运行。
因此,我决定将提交按钮更改为键入“按钮”并使用 jquery .ajax() 上传文件,这样我就可以在成功时添加回调。到目前为止,我的 ajax 方法代码是:
$.ajax({
url: 'Administration/PhotoManagement/uploadPhotos.cfm',
type: 'POST',
data: { Add: 'add',
NewFilename: file_name,
shortName: short_name,
description: description
},
contentType: 'multipart/form-data',
success: function(response, status, xhr){
$('#upload').html(response);
// refresh gallery, featured pic, details
alert('success');
}
},
error: function(xhr, status){
alert(status + ' ' + xhr.statusText);
}
});
提交时,我收到 500 内部服务器错误。 Firebug 控制台报告数据已正确发布,但图像未上传,并且我没有从 cffile 周围的 try/catch 错误代码中收到错误消息。
我不接受这两种方法 - 如果我能让回调起作用,我会回到原来的方法。有什么建议?如果您认为我应该继续使用 ajax 方法,您会建议我尝试修复我的错误吗?
编辑:在上面的代码中,我添加了 type:multipart/form 数据,因为我在标签周围的 try/catch 块中收到错误:
无效的内容类型:application/x-www-form-urlencoded; charset=UTF-8
【问题讨论】:
-
500 错误的详细信息是什么?使用 firebug 或一些代理 (Charles) 来获取详细信息。
-
你试过使用jQuery ajax文件上传插件吗?
-
Lucas,我无法在工作中使用代理。 Firebug 不会给我 500 错误的详细信息;它显示了一个?在本地主机之后。删除“type: multipart/form-data”会使该错误消失,但我的 cffile 标记随后会给我上面列出的“invalid content type”错误。
-
tsurahman,有没有你推荐的?
-
我的印象是您无法通过 AJAX 请求上传文件。
标签: jquery file-upload coldfusion