想用jquery发送请求到服务器,但是不知道选择文件之后,该用怎么样数据方式传送过去。看到jquery里面写的文件格式只有xml,html,json,jsonp,text等,其他的文件是要专程这些格式才可以的么,那么怎么去转呢,然后$.ajax{}该怎么去写,搜到的尽是form表单。貌似论坛的markdown上传图片中的是新创建了一个form表单,然后将file以post的方式交由upload.js处理的。有没有可能像这样的格式利用ajax上传,然后服务器返回文件存储的地址
<input type = "file" name = "image_upload">
然后js来发送请求?
15 回复
我用javascript做了一个简单的文件上传,看能否对你有帮助。
var xhr = new XMLHttpRequest();
xhr.addEventListener('progress', function(){
console.log('progress');
}, false);
xhr.addEventListener('load', function(){
console.log('load');
}, false);
xhr.open('post', '/upload', true);///upload为文件上传的接口
var fd = new FormData();
fd.append('upfile', photo.data.file);
fd.append('money', money);
fd.append('source', source);
fd.append('filename', photo.data.name);
xhr.send(fd);
jQuery方式好像有提供一个叫$.ajaxFileUpload的方式 上传可以google一下。
@jialezhang 下面代码就是我的思路,你可以参考一下
$(function(){
$('#test').change(function(){
var file = this.files[0];
var formData = new FormData();
formData.append('filename', file);
$.ajax({
url : '/upload',
type : 'POST',
data: formData
});
});
});