我正在使用valums Ajax上传来上传图片。我在同一页面上有多个上传按钮。在FF,Chrome,IE8和Opera上,一切都很完美。但是,在safari中没有任何反应,也没有上传文件。我正在使用ajaxupload.3.6.js,下面是我的代码 -
button = $("#uplaodFile1");
new AjaxUpload(button, {
action : '/business/upload_file1',
name: 'uplaodFile1',
autoSubmit: true,
cache:false,
onSubmit: function (file, ext) {
if (!(ext && /^(jpg|gif|png)$/i.test(ext))) {
alert('Error: invalid file extension');
return false;
}
},
onComplete: function (file, response) {
if(response=="Sucess") {
alert(response + 'sucess');
}
else {
alert(response);
}
}
});
有没有人面对这个。我尝试了所有的选项,比如添加元标记,搜索空的src属性和url属性,但没有什么可以帮助。
答案 0 :(得分:1)
它与safari浏览器的已知问题。请检查此链接https://github.com/valums/file-uploader/issues/190.You可以尝试http://blueimp.github.com/jQuery-File-Upload/此插件具有良好的功能和文档
答案 1 :(得分:0)
这是一个老问题,但这仍然是一个非常烦人的Safari问题。请参阅Safari XHR upload stucks (sometimes)和JQuery Ajax call often not working on Safari 6。
好消息是:您可以构建Valums fileuploader.js中提供的链接中解释的建议解决方法:
如何?在插件qq.FileUploader的xhr.open
之前的函数_upload中添加一个ajax调用,并在ajax的succes函数中包含所有代码,直到xhr.send:
$.ajax({
async: false,
url: your_closeconnection_script
})
.success(function(data){
xhr.open(...
...
xhr.send(file);
});
还有一件事:你需要在ajax调用之前创建一个'this'变量,并在success函数中替换所有次出现:
var $this = this;
$.ajax({
async: false,
url: your_closeconnection_script
})
.success(function(data){
xhr.open(...
...
if ($this._options.encoding == 'multipart'){
...
}
...
xhr.send(file);
});
Et voila:一个流畅的Valums插件!