手机端图片压缩上传解决方案

前端页面

引入lrz.min,js,lrz的的github上的项目地址:https://github.com/think2011/localResizeIMG

<!doctype html>

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
<title>手机端上传案例</title>
<link rel="stylesheet" href="{$_W['siteroot']}app/resource/power/css/weuix.min.css">
<script src="{$_W['siteroot']}app/resource/repair/repair/js/zepto.min.js"></script>
<script src="{$_W['siteroot']}app/resource/repair/repair/js/lrz.min.js"></script>
</head>
<body>
<div class="weui-header bg-blue" style="background:#ffb81f;">
  <div class="weui-header-left"> <a class="icon icon-109 f-white" href="JavaScript:history.back(-1)">返回</a> </div>
  <h1 class="weui-header-title">消息发布</h1>
  <div class="weui-header-right"><a class="icon icon-83 f-white"></a></div>
</div>
<form action="{php echo url('power/require/require_add')}" method="post">
<div class="weui_cells weui_cells_form">
  <div class="weui_cell">
    <div class="weui_cell_bd weui_cell_primary">
      <textarea class="weui_textarea" placeholder="请描述您所需" rows="3" name="descript"></textarea>
      <div class="weui_textarea_counter"><span></span></div>
    </div>    
  </div>
  <div class="weui_cell_bd weui_cell_primary">
<div class="weui_cells weui_cells_form">
<div class="weui_cell">
<div class="weui_cell_bd weui_cell_primary">
<div class="weui_uploader">
<div class="weui_uploader_hd weui_cell">
<div class="weui_cell_bd weui_cell_primary">图片上传</div>
<div class="weui_cell_ft"></div>
</div>
<div class="weui_uploader_bd">
<ul class="weui_uploader_files" id='img2x'>
</ul>
<div class="weui_uploader_input_wrp">
<input class="weui_uploader_input" type="file" accept="image/*"  οnchange="previewImage1(this)" multiple />

</div>
</div>
</div>
</div>
</div>
</div>
   </div>

</div>
<div class="bd spacing"> <input class="weui_btn weui_btn_warn" type="submit" value="确认发布">
 </div>
  </form>
<script type="text/javascript">
function previewImage1(file) {
    var MAXWIDTH = 100;
    var MAXHEIGHT = 200;
   for(var i=0;i<file.files.length;i++){
  if (file.files && file.files[i]) {
$.showLoading();
lrz(file.files[i],{width:640})
.then(function (rst) {
$.post("{php echo url('common/upload')}", { base64:rst.base64 },function(ret){
var obj = eval('(' + ret + ')');
if(obj.error!=1){    
$('#img2x').append('<li class="weui_uploader_file" style="background-image:url('+rst.base64+')"></li><input value="'+obj.src+'"  type="hidden"  name="files[]" />');
$.hideLoading();
}else{  
alert('上传失败'+obj.src);
$.hideLoading();
}
})
})
}

}
}
</script>
</body>

</html>

后台处理

<?php
function generate_password($length = 5) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$password = "";
for ($i = 0; $i < $length; $i++) {
$password .= $chars[mt_rand(0, strlen($chars) - 1)];
}
return $password;
}
$data = $_POST['base64'];
preg_match("/data:image\/(.*);base64,/", $data, $res);
$ext = $res[1];
if (!in_array($ext, array("jpg", "jpeg", "png", "gif"))) {
echo json_encode(array('src' => "上传格式错误。。" . $ext, 'size' => $_POST['size'], "error" => 1));die;
}
$file = generate_password(5) . time() . '.' . $ext;
$data = preg_replace("/data:image\/(.*);base64,/", "", $data);
if (file_put_contents(ATTACHMENT_ROOT . "repair/" . $file, base64_decode($data)) == false) {
echo json_encode(array('src' => "上传错误。。", 'size' => $_POST['size'], "error" => 1));
} else {
echo json_encode(array('src' => $_W['siteroot'] . "attachment/repair/" . $file, 'size' => $_POST['size'], "error" => 0));
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值