Javascript 无法使用AJAX上载文件
我正试图通过AJAX上传一个文件。我已经搜索了很多,但发现的例子只使用表单提交,但我不能使用表单提交。我已经尝试了几个例子,但没有达到我的服务器。当我尝试时,它成功了,但同样是通过表单提交 下面是一段与上下文相关的代码 JS代码Javascript 无法使用AJAX上载文件,javascript,jquery,Javascript,Jquery,我正试图通过AJAX上传一个文件。我已经搜索了很多,但发现的例子只使用表单提交,但我不能使用表单提交。我已经尝试了几个例子,但没有达到我的服务器。当我尝试时,它成功了,但同样是通过表单提交 下面是一段与上下文相关的代码 JS代码 function _upload(filedata) { $.ajax({ url: './myURI', data: filedata, type: 'POST', contentType: '
function _upload(filedata) {
$.ajax({
url: './myURI',
data: filedata,
type: 'POST',
contentType: 'multipart/form-data',
mimeType: 'multipart/form-data', //Property added in 1.5.1
success: function (data) {
alert(data);
}
});
}
$("#cpc-uploadBtn").click(function (evt) {
var data;
data = new FormData();
data.append('file', $('#cpc-upload')[0].files[0]);
_upload(data);
});
HTML部分
<input id="cpc-upload" name="file" type="file" />
<button id="cpc-uploadBtn" type="button">Upload</button>
上传
编辑
如果不使用表单提交和表单数据,还有其他方法可以做到这一点吗?我想目前只有Safari/Firefox支持表单数据对象,它还没有被大多数浏览器采用 最近,我在寻找asp.net的ajax文件上载程序时遇到了很多困难,目前我正在我的项目中使用此程序:
如果您想使用
<script>
// wait for the DOM to be loaded
$(document).ready(function()
{
// bind 'myForm' and provide a simple callback function
$("#tempForm").ajaxForm({
url:'../calling action or servlet',
type:'post',
beforeSend:function()
{
alert("perform action before making the ajax call like showing soinner image");
},
success:function(e){
alert("data is"+e);
alert("now do whatever you want with the data");
}
});
});
</script>
//等待加载DOM
$(文档).ready(函数()
{
//绑定“myForm”并提供一个简单的回调函数
$(“#tempForm”).ajaxForm({
url:“../正在调用操作或servlet”,
类型:'post',
beforeSend:function()
{
警报(“在进行ajax调用之前执行操作,如显示soinner图像”);
},
成功:职能(e){
警报(“数据为”+e);
警报(“现在对数据做任何你想做的事”);
}
});
});
如果您使用的是Safari/FireFox(仅支持
FormData
),您可以找到该插件。您需要修改$。ajax
调用:
$.ajax({
url: './myURI',
data: filedata,
type: 'POST',
contentType: false,
processData: false,
success: function (data) {
alert(data);
}
});
将contentType
选项设置为false将强制jQuery不为您添加内容类型头(否则边界字符串将丢失)。另外,processData
标志必须设置为false,以便jQuery不会尝试将FormData
转换为字符串
现在,如果您知道您的客户端正在使用HTML5,您应该尝试使用新的JavaScript文件API-查看以下文章: