广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JS如何实现异步上传压缩图片
  • 886
分享到

JS如何实现异步上传压缩图片

2024-04-02 19:04:59 886人浏览 独家记忆
摘要

小编给大家分享一下js如何实现异步上传压缩图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先看调用页面:<!doctyp

小编给大家分享一下js如何实现异步上传压缩图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

先看调用页面:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-Scalable=no">
    <script type="text/javascript" src="./js/lrz.mobile.min.js"></script>
    <script src="Http://libs.baidu.com/Jquery/1.9.0/jquery.js"></script>
</head>
<body class="upload">
<fORM id="form">
    <div id="img_show"></div>
    <div id="upload">
      <div id="img_file"><input type="file" accept="image/*" ><div class="btn">选择图片</div></div>
    </div>
    <input type="submit" class="tijiao" value="提交">
  </form>
</body>

<script type="text/javascript">
  var img;
  $("input:file").change(function (){
    //console.log(this.files[0]);
    lrz(this.files[0],{width:640,quality:0.9},function(rst){
      img = rst.base64;
      var html = [];
      var show_img = new Image();
      show_img.src = rst.base64;
      $("#img_show").html("<div class='upimg'></div>");
      $(".upimg").html(show_img);
    });
  });
  $("#form").submit(function (){
    var phone = $("input[name='phone']").val();
    var month = $("input[name='month']").val();
    $.post("upload.PHP",{img:img,phone:phone,month:month},function(data){
      img = null;
      alert(data.msg);
    },'JSON');
    return false;
  });
</script>
</html>

1.首先你要载入JS类库:

<script type="text/javascript" src="./js/lrz.mobile.min.js"></script>

2.然后就是写好form

3.准备处理图片以及图片异步提交的JS。

<script type="text/javascript">
  var img;
  $("input:file").change(function (){
    //console.log(this.files[0]);
    lrz(this.files[0],{width:640,quality:0.9},function(rst){
      img = rst.base64;
      var html = [];
      var show_img = new Image();
      show_img.src = rst.base64;
      $("#img_show").html("<div class='upimg'></div>");
      $(".upimg").html(show_img);
    });
  });
  $("#form").submit(function (){
    var phone = $("input[name='phone']").val();
    var month = $("input[name='month']").val();
    $.post("upload.php",{img:img},function(data){
      img = null;
      alert(data.msg);
    },'json');
    return false;
  });
</script>

从代码中可以看出,这个JS库是把图片转成码,然后用变量存起来,然后在用异步POST到服务器中在处理。

看起来貌似没有什么特别的地方,的确实在也没有什么特别的地方.......

后台处理程序PHP:

function error($msg=''){
  $return = array('msg'=>$msg);
  echo json_encode($return);
  exit();
}

function main(){
  if(!$_POST['img']){
    error('请上传图片!');
  }
  
  $img = $_POST['img'];
  
  $path = './upload/';
  
  $type_limit = array('jpg','jpeg','png');

  if(preg_match('/data:\s*image\/(\w+);base64,/iu',$img,$tmp)){
    if(!in_array($tmp[1],$type_limit)){
      error('图片格式不正确,只支持jpg,jpeg,png!');
    }
  }else{
    error('抱歉!上传失败,请重新再试!');
  }
  
  $img = str_replace(' ','+',$img);
  
  $img = str_replace($tmp[0], '', $img);

  $img = base64_decode($img);
  
  $file = $path.time().'.'.$tmp[1];
  if(!file_put_contents($file,$img)){
    error('上传图片失败!');
  }else{
    error('恭喜您!上传成功!');
  }
}
main();

上述代码如果有错误欢迎指出。

如上诉代码,正如你看到的那样,经过BASE64加密过的图片码经过JS异步的POST过来后端后,我们要把代码还原。但是JS库加密的时候会带有一些标签,所以还原前需要处理掉这些本来不属于图片的东西。

$img = str_replace(' ','+',$img);  
$img = str_replace($tmp[0], '', $img);
$img = base64_decode($img);

最后把代码塞进文件,设置好相应的文件名和扩展名,图片就成功上传到了服务器了。

注意:

前后端包括JS编码要要一致,建议UTF-8

如果图片还原不会来的话,那肯定是数据问题,打印POST过来的图片码出来看看。

以上是“JS如何实现异步上传压缩图片”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: JS如何实现异步上传压缩图片

本文链接: https://www.lsjlt.com/news/66513.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS如何实现异步上传压缩图片
    小编给大家分享一下JS如何实现异步上传压缩图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先看调用页面:<!doctyp...
    99+
    2022-10-19
  • js如何实现移动端图片压缩上传功能
    这篇文章给大家分享的是有关js如何实现移动端图片压缩上传功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。移动端图片压缩上传功能如何实现?做移动端开发的时候,form里面的fil...
    99+
    2022-10-19
  • H5如何实现图片压缩与上传功能
    这篇文章主要为大家展示了“H5如何实现图片压缩与上传功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“H5如何实现图片压缩与上传功能”这篇文章吧。canvas压...
    99+
    2022-10-19
  • Vue使用canvas实现图片压缩上传
    本文实例为大家分享了Vue使用canvas实现图片压缩上传的具体代码,供大家参考,具体内容如下 场景:如用户头像等 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大...
    99+
    2022-11-12
  • java实现上传图片并压缩图片大小功能
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式...
    99+
    2023-05-31
    java 上传图片 压缩图片
  • spring mvc+localResizeIMG实现HTML5端图片压缩上传
    最近在做一个移动端HTML5的应用,使用到了上传功能,起初使用传统的上传方式上传手机拍照的照片,由于手机拍照出来的照片一般都是好几MB,所以上传速度是非常慢的。在网上找了很久找到了localResizeIMG压缩框架,感觉非常的实用,所以在...
    99+
    2023-05-31
    html5 localresizeimg 上传
  • ajax如何上传图片到PHP并压缩图片显示
    本篇内容主要讲解“ajax如何上传图片到PHP并压缩图片显示”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax如何上传图片到PHP并压缩图片显示”吧!HTML代码<div i...
    99+
    2023-06-08
  • html5中canvas移动浏览器上如何实现图片压缩上传
    这篇文章主要介绍html5中canvas移动浏览器上如何实现图片压缩上传,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、<input type="file"...
    99+
    2022-10-19
  • vue与js中如何实现图片压缩封装
    这篇文章主要介绍“vue与js中如何实现图片压缩封装”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue与js中如何实现图片压缩封装”文章能帮助大家解决问题。全局main.js引入:// ...
    99+
    2023-06-30
  • Android中怎么实现图片压缩与上传功能
    Android中怎么实现图片压缩与上传功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先需要对图片进行压缩,这方面可以使用第三方的库,我在实际的开发中使用的...
    99+
    2023-05-30
    android
  • JavaScript如何实现异步上传图片文件
    这篇文章将为大家详细讲解有关JavaScript如何实现异步上传图片文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html:<form action=...
    99+
    2022-10-19
  • Canvas如何实现图片压缩
    这篇文章主要介绍Canvas如何实现图片压缩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Canvas图片压缩流程接下来我将以具体实例为大家讲解Canvas图片压缩的具体流程。一、本...
    99+
    2022-10-19
  • HTML5中怎么实现一个图片压缩上传功能
    这篇文章给大家介绍HTML5中怎么实现一个图片压缩上传功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、创建一个图片和一个canvasXML/HTML Code复制内容到剪贴板va...
    99+
    2022-10-19
  • java实现上传图片尺寸修改和质量压缩
    本文实例为大家分享了java实现上传图片尺寸修改和质量压缩的具体代码,供大家参考,具体内容如下 package com.zity.frame.util;     import co...
    99+
    2022-11-13
  • 怎么使用vue实现微信端图片压缩上传
    这篇文章主要介绍“怎么使用vue实现微信端图片压缩上传”,在日常操作中,相信很多人在怎么使用vue实现微信端图片压缩上传问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用vue实现微信端图片压缩上传”的疑...
    99+
    2023-07-04
  • 如何用JS有效的压缩图片
    目录前言转化关系具体实现file2DataUrl(file,callback)file2Image(file,callback)url2Image(url,callback)imag...
    99+
    2022-11-12
  • js实现上传图片功能
    前端上传图片的原理是:运用input type=“file”的标签获取图片,再使用FileReader这个对象 new 一个实例,通过这个对象的readAsDataURL()方法读取...
    99+
    2022-11-12
  • Nodejs中怎么实现图片上传和压缩预览功能
    这篇文章给大家介绍Nodejs中怎么实现图片上传和压缩预览功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、引入基本配置const Koa = req...
    99+
    2022-10-19
  • 如何使用批处理实现css和js图片压缩
    这篇文章主要介绍如何使用批处理实现css和js图片压缩,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:@echo off ::设置YUI Compressor启动目录 ...
    99+
    2023-06-08
  • 如何利用HTML5实现图片文件异步上传
    小编给大家分享一下如何利用HTML5实现图片文件异步上传,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 1.文件未选择 2.文...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作