【发布时间】: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