【问题标题】:image uploading is too slow even after compress with js (uploading with php)用js压缩后图片上传太慢(用php上传)
【发布时间】:2018-07-27 02:46:01
【问题描述】:

这是图像压缩代码,工作正常。 我正在将图像 base64 代码附加到 formdata 并提前发送到 php 进行上传,但是上传时间太长了。 压缩后为 150KB,压缩前为 5MB。 压缩后快速上传的任何解决方案???

var i=0;
function Resize()
{
    // $("#ChoosenImageImg").attr('src','');
    var filesToUpload = document.getElementById('Pimage').files;
    var file = filesToUpload[0];
    var dataurl='';
    i++;
    // Create an image
    var img = document.createElement("img");
    // Create a file reader
    var reader = new FileReader();
    // Set the image once loaded into file reader
    reader.onload = function(e) {
            img.src = e.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 = 350;
            var MAX_HEIGHT = 350;
            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);

            dataurl = canvas.toDataURL("image/png");
            // return dataurl;
            // document.getElementById('output').src = dataurl;
            $("#ChoosenImage").html('<img id="ChoosenImageImg" src="'+dataurl+'" width="175px" height="160px"> ');
            // alert(dataurl);
        }
        // Load files into file reader
    reader.readAsDataURL(file);

    if(i<=1)
    {
      Resize();
    }
}

--------------------------------------------

File Uploading Code

if($this->input->post('ImageResult') && $this->input->post('ImageResult') !='')
        {
            $img = $this->input->post('ImageResult');
            $data = $img;

            list($type, $data) = explode(';', $data);
            list(, $data) = explode(',', $data);
            $data = base64_decode($data);


            $dp = getcwd().DIRECTORY_SEPARATOR;
            // $target_path = $dp . "assets/patient_images/".basename($Filename);

            $ImageName = 'Patient'.rand(100,90000);
            $ImageName = $ImageName.'_'.rand(100,90000);
            $ImageName = $ImageName.'.png';

            file_put_contents($dp."assets/patient_images/".$ImageName, $data);


            $return = $this->Operatormodel->AddPatient($ImageName, $Alldata);
                echo $return;
        }

【问题讨论】:

  • 问题不清楚
  • 苏梅什 TG1 |图片上传时间太长,每张图片30到40秒..如果图片大于4MB。
  • 即使在压缩之后.. :/

标签: javascript php file-upload image-compression


【解决方案1】:

Base64 扩展您的数据。直接发送二进制数据。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2018-06-13
    • 2021-01-11
    相关资源
    最近更新 更多