通过AJAX发送文件返回'blob'错误
Sending file through AJAX returns 'blob' error
我正试图让AJAX请求向我的控制器发送一个文件,然后控制器应该读取发送的文件并将排序后的数组返回到前端,尽管它不起作用,因为我遇到了一个"blob"未设置错误。我搜索了一下,但并没有找到我想要的答案,因此我创建了这个问题。
目前我收到以下类型错误:
'slice' called on an object that does not implement interface Blob.
我试图发送的数据如下:
http://piclair.com/qk8ms(图片是因为我无法直接从浏览器复制数据。)
javascript:
// Click handler for file read
$(document).on('click','#load-csv-btn',function(e){
e.preventDefault();
var file = $('#file_upload')[0].files;
console.log(file);
readCSV(file);
});
function readCSV(file){
$.ajax({
type: "POST",
url: "ajax/read.php",
data: {file: file},
contentType: false
}).success(function(data){
console.log(data);
}).fail(function(){
console.log('error');
});
}
PHP处理程序,不过我想这部分与这个问题无关:
<?php
var_dump($_POST);
我发现有人说,设置processData: false
和contentType: false
会让脚本忽略blob要求,但如果我设置了这些参数,我的服务器只会发回一个空数组,我想这并不奇怪,因为我没有处理任何数据。
所以我希望有人知道这个问题的解决方案,能够帮助我。
编辑:
为了明确我尝试过的返回空数组的方法,这里有另一个代码:
$(document).on('click','#load-csv-btn',function(e){
e.preventDefault();
var file = $('#file_upload')[0].files[0];
var fd = new FormData();
fd.append("csv",file);
readCSV(fd);
});
function readCSV(file){
$.ajax({
type: "POST",
url: "ajax/read.php",
data: {file: file},
contentType: false,
processData: false
}).success(function(data){
console.log(data);
}).fail(function(){
console.log('error');
});
}
就我而言,如果没有外部库,AJAX上传就不容易完成。至少,这是我第一次需要做这件事时学到的。
http://www.9lessons.info/2011/08/ajax-image-upload-without-refreshing.html
本指南非常好,但如果您使用的是较新版本的jQuery,则会有点过时。您可能需要更改一些不推荐使用的功能,例如(.live()
到.on()
)。
最后,我可以热烈推荐它作为一个良好的开端。多年来,我广泛使用它,并取得了巨大成功。
祝你好运!
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 通过AJAX发送文件返回'blob'错误
- 通过 AJAX 检索 Blob 时处理错误消息
- 在消耗大量内存后,浏览器在创建图像Blob的ObjectURL时抛出错误
- Azure Blob 存储 请求的资源错误中不存在访问控制允许源标头
- (类型错误):Blob 不是构造函数
- Azure Blob 放置命令在以前工作时生成错误
- 错误blob上载警告:fopen(C:examplep mpphp4FC4.tmp):无法打开流:没有这样的
- 文件阅读器错误:对象正忙于读取blob
- 未捕获的类型错误:执行失败'on 'FileReader':参数1不是'Blob'
- IE11 'Blob未定义'错误
- ie9错误:'Blob'是未定义的
- 使用Blob时显示错误
- 从剪贴板复制和粘贴图像,blob错误
- Blob的DataURI错误:DOM异常5:指定了无效或非法的字符
- 控制台中的错误:参数不是Blob类型