Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Filereader、jQuery、Ajax和PHP上传图像。图片太大,无法发布?_Javascript_Jquery_Ajax_Filereader - Fatal编程技术网

Javascript 使用Filereader、jQuery、Ajax和PHP上传图像。图片太大,无法发布?

Javascript 使用Filereader、jQuery、Ajax和PHP上传图像。图片太大,无法发布?,javascript,jquery,ajax,filereader,Javascript,Jquery,Ajax,Filereader,我在使用jQueryAjax post请求将图像内容从客户端js发送到服务器端php时遇到问题 我使用以下代码作为dataurl读取该文件: this.readFile = function(file, onLoadCallback){ var reader = new FileReader(); reader.onload = onLoadCallback; reader.readAsDataURL(file); }; 而且效果很好 现在我想将数据传输到服务器并保存图

我在使用jQueryAjax post请求将图像内容从客户端js发送到服务器端php时遇到问题

我使用以下代码作为dataurl读取该文件:

this.readFile = function(file, onLoadCallback){
    var reader = new FileReader();
    reader.onload = onLoadCallback;
    reader.readAsDataURL(file);
};
而且效果很好

现在我想将数据传输到服务器并保存图像,但是如果图像大于800kB左右,ajax请求成功而不发送数据。在php端,我得到了一个空字符串

阿贾克斯:

函数上载映像(num){
var数据_ob={
pic_name:images[num].getFilename(),
画廊:$(“#画廊id”).val(),
pic_数据:images[num].getPrev().split(“base64”)[1]
};
$.ajax({
url:“index.php/uploadImage”,
数据:{
数据:JSON.stringify(数据)
},
键入:“POST”,
数据类型:“文本”,
async:false,
超时:100000
}).成功(职能(e){
}).错误(函数(e){
警报(e);
});
}
浏览器:Firefox、Chrome PHP框架:CodeIgniter CSS框架:基础 jQuery 2.1.0

立柱最大尺寸=8M

结果,小图像:

结果,放大图像:

您确定在FileReader读取完文件后执行uploadImage功能吗?尝试用Firebug或类似工具调试代码(点击F12)。数据是通过AJAX请求发送的,还是也是空的?请看两幅图像(底部的链接)。我用一个按钮触发上传开始,在我能看到浏览器中的图像后单击它。所有数据在你的后端都是空的还是只有PICU数据?$\u POST[“数据”]为空?你在屏幕截图中显示的结果没有将
超时设置为10毫秒,或者?对于这样的请求,10毫秒的时间非常短
function uploadImage(num){

    var data_ob = {
        pic_name : images[num].getFilename(),
        gallery : $("#gallery_id").val(),
        pic_data : images[num].getPrev().split("base64,")[1]
    };
    $.ajax({
       url: "<?php echo(base_url());?>index.php/uploadImage",
       data: {
           data: JSON.stringify(data_ob)
       },
       type: 'POST',
       dataType: 'TEXT',
       async: false,
       timeout: 100000
    }).success(function(e){

    }).error(function(e){
        alert(e);
    });
}