最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

localResizeIMG先壓縮后使用ajax無刷新上傳(移動端)

 更新時間:2015年08月11日 14:33:56   作者:碼農小兵  
隨著技術的發(fā)展,移動設備像素越來越高,但是這么大的圖片怎么上傳呢?下面小編就給大家一起學習移動端圖片上傳的方法之localResizeIMG先壓縮后使用ajax無刷新上傳,需要的朋友可以參考下

下面通過文字說明和代碼分析的方式給大家分享移動端圖片上傳之localResizeIMG先壓縮后ajax無刷新上傳,具體實現(xiàn)過程請看下文。

現(xiàn)在科技太發(fā)達,移動設備像素越來越高,隨便一張照片2M+,但是要做移動端圖片上傳和pc上略有不同,移動端你不能去限制圖片大小,讓用戶先處理圖片再上傳,這樣不現(xiàn)實。所以理解的解決方案就是在上傳先進行圖片壓縮,然后再把壓縮后的圖片上傳到服務器。

一翻google之后,發(fā)現(xiàn)了localResizeIMG,它會對圖片進行壓縮成你指定寬度及質量度并轉換成base64圖片格式,那么我們就可以把這個base64通過ajax傳到后臺,再進行保存,先壓縮后上傳的目的就達到了。

處理過程

LocalResizeIMG壓縮圖片
AjaxPost圖片base64到后臺
后臺接收base64并保存,返回狀態(tài)
前臺代碼

重點,引用LocalResizeIMG.js(插件主體)及mobileBUGFix.mini.js(移動端的補?。?/strong>

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>移動端圖片上傳解決方案localResizeIMG先壓縮后ajax無刷新上傳</title>
<meta name="description" content="" />
<meta name="viewport" content="width=device-width , initial-scale=1.0 , user-scalable=0 , minimum-scale=1.0 , maximum-scale=1.0" />
<script type='text/javascript' src='js/jquery-2.0.3.min.js'></script>
<script type='text/javascript' src='js/LocalResizeIMG.js'></script>
<script type='text/javascript' src='js/patch/mobileBUGFix.mini.js'></script>
<style type="text/css">
 body{font-family:"微軟雅黑"}
 .uploadbtn{ display:block;height:40px; line-height:40px; color:#333; text-align:center; width:100%; background:#f2f2f2; text-decoration:none; }
 .imglist{min-height:200px;margin:10px;}
 .imglist img{width:100%;}
</style>
</head>
<body>
<div style="width:500px;margin:10px auto; border:solid 1px #ddd; overflow:hidden; ">
 <input type="file" id="uploadphoto" name="uploadfile" value="請點擊上傳圖片" style="display:none;" /> 
 <div class="imglist"></div> 
 <a href="javascript:void(0);" onclick="uploadphoto.click()" class="uploadbtn">點擊上傳文件</a>
</div>
<div style="text-align:center;margin-top:50px;">@ <a >碼農小兵,專注web開發(fā) 歡迎投稿</a></div> 
</body>
</html>

Js部份,localResizeIMG及Ajax提交部份

使用方法

$('input:file').localResizeIMG({
   width: 400,//寬度
   quality: 1,//質量
   success: function (result) {
      result.base64/result.clearBase64
   }
});

localResizeIMG參數(shù):

          width:縮略圖寬度
          quality:圖片質量,0—1,越大越好

localResizeIMG返回值

           result.base64:帶圖片類型的base64編碼,可直接用于img標簽的src,如“data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/…2wBDAAYEBQYFBAY”;

           result.clearBase64:不帶圖片類型的編碼,如“/9j/4AAQSkZJRgABAQAAAQABAAD/…2wBDAAYEBQYFBAY”

$(document).ready(function(e) {
  $('#uploadphoto').localResizeIMG({
   width: 400,
   quality: 1,
   success: function (result) { 
     var submitData={
        base64_string:result.clearBase64, 
      }; 
    $.ajax({
      type: "POST",
      url: "upload.php",
      data: submitData,
      dataType:"json",
      success: function(data){
       if (0 == data.status) {
        alert(data.content);
        return false;
       }else{
        alert(data.content);
        var attstr= '<img src="'+data.url+'" alt="" />'; 
        $(".imglist").append(attstr); 
       }
      }, 
      complete :function(XMLHttpRequest, textStatus){
      },
      error:function(XMLHttpRequest, textStatus, errorThrown){ //上傳失敗 
        alert(XMLHttpRequest.status);
        alert(XMLHttpRequest.readyState);
        alert(textStatus);
      }
    }); 
   }
 });
});

保存文件

       在上面一步中,我們把result.clearBase64通過Ajax傳入到upload.php中,接下來我們就要在upload.php中接收base64參數(shù),把它轉換成img文件保存來服務器中,并給出提示。

$base64_string = $_POST['base64_string'];
 $savename = uniqid().'.jpeg';//localResizeIMG壓縮后的圖片都是jpeg格式
 $savepath = 'images/'.$savename; 
 $image = base64_to_img( $base64_string, $savepath );
 if($image){
   echo '{"status":1,"content":"上傳成功","url":"'.$image.'"}';
 }else{
   echo '{"status":0,"content":"上傳失敗"}';
 } 
 function base64_to_img( $base64_string, $output_file ) {
   $ifp = fopen( $output_file, "wb" ); 
   fwrite( $ifp, base64_decode( $base64_string) ); 
   fclose( $ifp ); 
   return( $output_file ); 
 }

不足之處

        localResizeIMG壓縮后的圖片模式都是jpeg,不能保證原有格式。

        當圖片寬度小于localResizeIMG設置的width參數(shù)時,圖片會被拉申,從而引起圖片失真(比如width高為600,圖片只在400px時,壓縮后的圖片就變成了600px,圖片尺寸變大了,會失真),不知道大家有沒有什么好的解決方法。

以上內容是本文介紹localResizeIMG先壓縮后使用ajax無刷新上傳的全部內容,希望大家喜歡。

相關文章

  • 深入理解Javascript中this的作用域

    深入理解Javascript中this的作用域

    這篇文章主要介紹了深入理解Javascript中this的作用域,本文用大量例子來深入探討this的作用域,需要的朋友可以參考下
    2014-08-08
  • 原生js的RSA和AES加密解密算法

    原生js的RSA和AES加密解密算法

    這篇文章主要為大家詳細介紹了原生js的RSA和AES加密解密算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 怎么判斷js腳本加載完成

    怎么判斷js腳本加載完成

    本篇文章主要是對判斷js腳本加載完成的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 簡介JavaScript錯誤處理機制

    簡介JavaScript錯誤處理機制

    這篇文章主要介紹了JavaScript錯誤處理機制的相關資料,文中講解非常細致,幫助大家更好的理解和學習JavaScript,感興趣的朋友可以了解下
    2020-08-08
  • js基于cookie方式記住返回頁面用法示例

    js基于cookie方式記住返回頁面用法示例

    這篇文章主要介紹了js基于cookie方式記住返回頁面的用法,涉及javascript操作cookie及php針對cookie的判斷技巧,需要的朋友可以參考下
    2016-05-05
  • javascript模擬滾動條實現(xiàn)代碼

    javascript模擬滾動條實現(xiàn)代碼

    從csdn的blog上轉過來的  做了些修改,其實寫的比較糟糕(我指的是構造) 我用的是以前的一個drag類  在這個基礎上在的來完成的Slider

    2010-03-03
  • javascript Discuz代碼中的msn聊天小功能

    javascript Discuz代碼中的msn聊天小功能

    參考discuz的msn聊天功能代碼
    2008-05-05
  • js canvas實現(xiàn)擦除動畫

    js canvas實現(xiàn)擦除動畫

    在移動設備上將某張圖片擦掉顯示另一張圖片,利用canvas來實現(xiàn)這篇文章就為大家詳細介紹了js canvas實現(xiàn)擦除動畫的相關資料,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 微信小程序開發(fā)之實現(xiàn)心情記事本

    微信小程序開發(fā)之實現(xiàn)心情記事本

    這篇文章主要為大家詳細介紹了如何通過微信小程序開發(fā)一個簡單的心情記事本,文中的示例代碼講解詳細,感興趣的小伙伴可以和小編一起學習一下
    2023-01-01
  • JS實現(xiàn)下拉菜單列表與登錄注冊彈窗效果

    JS實現(xiàn)下拉菜單列表與登錄注冊彈窗效果

    下面小編就為大家?guī)硪黄狫S實現(xiàn)下拉菜單列表與登錄注冊彈窗效果。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論

铜山县| 项城市| 湘西| 五台县| 阜城县| 江安县| 桃源县| 那坡县| 巴彦淖尔市| 娄烦县| 九江县| 平安县| 清流县| 镇赉县| 太和县| 丰宁| 许昌市| 故城县| 涿州市| 康马县| 乳源| 五原县| 扶绥县| 海原县| 高邑县| 老河口市| 肃宁县| 桃江县| 逊克县| 莱芜市| 湖南省| 文登市| 开鲁县| 西乌| 吴旗县| 河间市| 壤塘县| 高尔夫| 怀柔区| 福泉市| 永康市|