Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 通过POST发送的图像(base64格式),如果超过1,5 MB,则永远不会到达服务器。画布大小调整赢得';我也帮不上忙_Javascript_Php_Canvas_Http Post_Joomla3.0 - Fatal编程技术网

Javascript 通过POST发送的图像(base64格式),如果超过1,5 MB,则永远不会到达服务器。画布大小调整赢得';我也帮不上忙

Javascript 通过POST发送的图像(base64格式),如果超过1,5 MB,则永远不会到达服务器。画布大小调整赢得';我也帮不上忙,javascript,php,canvas,http-post,joomla3.0,Javascript,Php,Canvas,Http Post,Joomla3.0,我尝试加载,并通过ajax(post)将图像发送到服务器。如果文件大于1MB,php JRequest::getVar('filedata')返回空 我试图在发送之前使用画布调整图像大小,但仍然没有成功 如果有人能提出任何解决方案,我将非常高兴(顺便说一句,这是joomla Compentant网站) javascript: <ul class="adminformlist" id="uploading"> <li><input type="file" na

我尝试加载,并通过ajax(post)将图像发送到服务器。如果文件大于1MB,php JRequest::getVar('filedata')返回空

我试图在发送之前使用画布调整图像大小,但仍然没有成功

如果有人能提出任何解决方案,我将非常高兴(顺便说一句,这是joomla Compentant网站)

javascript:

<ul class="adminformlist" id="uploading">
    <li><input type="file" name="attachment" id="attachment" multiple /><img id="spinner"
        style="display: none; margin-left: 10px;"
        src="<?php echo JURI::root(); ?>components/com_bt_property/assets/img/spinner.gif">
        <div style="clear: both"></div>
        <div id="btss-message"></div></li>
</ul>
<img src="" id="image">
<script type="text/javascript">
(function($){
            var files = [];
            $("#attachment").change(function(event) {
            $.each(event.target.files, function(index, file) {

             // Create an image
             var img = document.createElement("img");

              var reader = new FileReader();
              reader.onload = function(event) {

                 img.src = event.target.result;


                var canvas = document.createElement("canvas");
                //var canvas = $("<canvas>", {"id":"testing"})[0];
                var ctx = canvas.getContext("2d");
                ctx.drawImage(img, 0, 0);

                var MAX_WIDTH = 400;
                var MAX_HEIGHT = 300;
                var width = img.width;
                var height = img.height;

                if (width > height) {
                  if (width > MAX_WIDTH) {
                    height *= MAX_WIDTH / width;
                    width = MAX_WIDTH;
                  }
                } else {
                  if (height > MAX_HEIGHT) {
                    width *= MAX_HEIGHT / height;
                    height = MAX_HEIGHT;
                  }
                }
                canvas.width = width;
                canvas.height = height;
                var ctx = canvas.getContext("2d");
                ctx.drawImage(img, 0, 0, width, height);

                var dataurl = canvas.toDataURL("image/png", 0.2);
                document.getElementById('image').src = dataurl; 



                object = {};
                object.filename = file.name;
                object.data = event.target.result;
                files.push(object);
                if(files.length==1){
                    uploadFile(index);
                    $('#spinner').show();
                    $("#btss-message").show();
                }

              };  
              reader.readAsDataURL(file);
            });
          });

          function uploadFile(index){
              $.ajax({url: "index.php?option=com_bt_property&task=properties.upload",
                    type: 'POST',
                    data: {filename: files[index].filename, filedata: files[index].data},
                    success: function(response, status, xhr){
                        //console.log("resp: " + response + " " + status + " " + xhr);
                        uploadHandler(response, status, xhr);
                        if(index == files.length-1){
                            $('#spinner').hide();
                            files = [];
                            $("#attachment").val('');
                            $("#btss-message").delay(1000).slideUp(function(){
                                $("#btss-message").html('');
                            });
                        }else{
                            index++;
                            uploadFile(index);

                        }
                    }
              });
          }
  • components/com_bt_property/assets/img/spinner.gif“>
(函数($){ var文件=[]; $(“#附件”)。更改(功能(事件){ $.each(event.target.files,函数(索引,文件){ //创建一个图像 var img=document.createElement(“img”); var reader=new FileReader(); reader.onload=函数(事件){ img.src=event.target.result; var canvas=document.createElement(“canvas”); //var canvas=$(“”,{“id”:“testing”}[0]; var ctx=canvas.getContext(“2d”); ctx.drawImage(img,0,0); var MAX_WIDTH=400; var最大高度=300; 变量宽度=img.width; var高度=img高度; 如果(宽度>高度){ 如果(宽度>最大宽度){ 高度*=最大宽度/宽度; 宽度=最大宽度; } }否则{ 如果(高度>最大高度){ 宽度*=最大高度/高度; 高度=最大高度; } } 画布宽度=宽度; canvas.height=高度; var ctx=canvas.getContext(“2d”); ctx.drawImage(img,0,0,宽度,高度); var dataurl=canvas.toDataURL(“image/png”,0.2); document.getElementById('image').src=dataurl; 对象={}; object.filename=file.name; object.data=event.target.result; 文件。推送(对象); if(files.length==1){ 上传文件(索引); $(“#微调器”).show(); $(“#btss消息”).show(); } }; reader.readAsDataURL(文件); }); }); 函数上载文件(索引){ $.ajax({url:index.php?option=com\u bt\u property&task=properties.upload“, 键入:“POST”, 数据:{filename:files[index].filename,filedata:files[index].data}, 成功:功能(响应、状态、xhr){ //日志(“resp:+response+”“+status+”“+xhr”); uploadHandler(响应、状态、xhr); if(index==files.length-1){ $(“#微调器”).hide(); 文件=[]; $(“附件”).val(“”); $(“#btss消息”).delay(1000).slideUp(函数(){ $(“#btss消息”).html(“”); }); }否则{ 索引++; 上传文件(索引); } } }); }
Php上传:

// upload function
    function upload($fe = false) {
        $db = JFactory::getDBO();
        $id = JRequest::getInt('id');
        $query = "SELECT params from #__bt_properties where id=$id";
        $db->setQuery($query);
        $params = $db->loadResult();

        if ($params) {
            $registry = new JRegistry();
            $registry->loadString($params);
            $this->overrideConfigs($registry);
        }
        $pid = 'tmp';
        $allowedExtensions = array('jpg', 'jpeg', 'JPG', 'png', 'gif');

        $this->prepareFolders($pid);

        $validated = true;
        $objFile = new stdClass();

        /****
        if ($fe) {
            $file = $_FILES["Filedata"];
            $max_upload = (int) (ini_get('upload_max_filesize'));
            $max_post = (int) (ini_get('post_max_size'));
            $memory_limit = (int) (ini_get('memory_limit'));
            $sv_uploadAllow = min($max_upload, $max_post, $memory_limit);
            $fe_uploadAllow = $this->params->get('fe_file_max_size', 0);
            $size = $file['size'] / (2048 * 2048);
            if ($fe_uploadAllow > 0 && $fe_uploadAllow <= $sv_uploadAllow) {
                if ($size > $fe_uploadAllow) {
                    $result['message'] = 'File is too large. Allow file less than ' . $fe_uploadAllow . ' MB';
                    $validated = false;
                }
            }
            if ($fe_uploadAllow > 0 && $fe_uploadAllow > $sv_uploadAllow) {
                if ($size > $sv_uploadAllow) {
                    $result['message'] = 'File is too large. Server allow file less than ' . $sv_uploadAllow . ' MB';
                    $validated = false;
                }
            }
        }

        *****/

        $filename = JRequest::getVar('filename');
        $filedata = JRequest::getVar('filedata');   


        list($type, $filedata) = explode(';', $filedata);
        list(, $filedata) = explode(',', $filedata);

        $filedata = base64_decode($filedata);

        list(, $imageExt) = explode('/', $type);

        $imageName = strtotime("now").'-'. $filename;
        $path_image = $this->images_path . $pid . '/';

        if (in_array($imageExt, $allowedExtensions)) {

            if (!file_put_contents($path_image . 'original-' . $imageName, $filedata)) {
                $result['message'] = 'Could not save!';
                $validated = false;
            } else {

                BTImageHelper::resize($path_image . 'original-' . $imageName, $path_image . 'large-' . $imageName, $this->crop_width, $this->crop_height, $this->largeimgprocess, $this->crop_pos,
                        $this->jpeg_com);

                BTImageHelper::resize($path_image . 'original-' . $imageName, $path_image . 'thumb-' . $imageName, $this->thumb_width, $this->thumb_height, $this->thumbimgprocess, $this->crop_pos,
                        $this->jpeg_com);
                BTImageHelper::resize($path_image . 'original-' . $imageName, $path_image . 'ssthumb-' . $imageName, $this->ssthumb_width, $this->ssthumb_height, $this->thumbimgprocess,
                        $this->crop_pos, $this->jpeg_com);

                $objFile->filename = $imageName;
                $objFile->title = $filename;
            }
        } else {            
            $result['message'] = 'File extension invalid!';
            $validated = false;
        }
        if ($validated) {
            $result["success"] = true;
            $result["files"] = $objFile;
        }
        $obLevel = ob_get_level();
        while ($obLevel > 0) {
            ob_end_clean();
            $obLevel--;
        }
        echo json_encode($result);
    }
//上传功能
函数上传($fe=false){
$db=JFactory::getDBO();
$id=JRequest::getInt('id');
$query=“从#uu bt_属性中选择参数,其中id=$id”;
$db->setQuery($query);
$params=$db->loadResult();
如果($params){
$registry=newjregistry();
$registry->loadString($params);
$this->overrideConfigs($registry);
}
$pid='tmp';
$allowedExtensions=数组('jpg','jpeg','jpg','png','gif');
$this->prepareFolders($pid);
$validated=true;
$objFile=new stdClass();
/****
若有($fe){
$file=$\u文件[“文件数据”];
$max_upload=(int)(ini_get('upload_max_filesize'));
$max_post=(int)(ini_get('post_max_size'));
$memory_limit=(int)(ini_get('memory_limit');
$sv_uploadAllow=min($max_upload,$max_post,$memory_limit);
$fe_uploadAllow=$this->params->get('fe_file_max_size',0);
$size=$file['size']/(2048*2048);
如果($fe_uploadAllow>0&&$fe_uploadAllow$fe_uploadAllow){
$result['message']='文件太大。允许文件小于'.$fe_uploadAllow.'MB';
$validated=false;
}
}
如果($fe_uploadAllow>0&&$fe_uploadAllow>sv_uploadAllow){
如果($size>$sv\u uploadAllow){
$result['message']='文件太大。服务器允许的文件小于'.$sv_uploadAllow.'MB';
$validated=false;
}
}
}
*****/
$filename=JRequest::getVar('filename');
$filedata=JRequest::getVar('filedata');
列表($type,$filedata)=分解(“;”,$filedata);
列表(,$filedata)=分解(',',$filedata);
$filedata=base64_解码($filedata);
列表(,$imageExt)=分解('/',$type);
$imageName=strotime(“现在”).-.$filename;
$path_image=$this->images_path.$pid.'/';
if(在数组中($imageExt,$allowedExtensions)){
如果(!file_put_contents($path_image.'original-'.$imageName,$filedata)){
$result['message']=“无法保存!”;
$validated=false;
}否则{
BTImageHelper::调整大小($path_image.'original-'。$imag)