百度上傳組件:webuploader

來源:互聯網
上載者:User

標籤:

百度圖片上傳組件:

頁面:

<div class="upload">
<section>
<article>
<div class="wu-example">
<div id="fileList" class="uploader-list"></div>
      <span id="picker">上傳出生證明</span>
</div>
       <div id="thumb"></div>
</article>
<div class="load" id="loading1" style="display: none"></div>
</section>


</div>

JS

坑1:路徑

坑2:IOS和安卓不同,導致調用方式改變

$(document).ready(function(){ var serverUrl ;//預設值 var environment = "ceshi";//xiangshang,ceshi ,bendi var baseurl = '<%=basepath%>';//  alert(baseurl);var u = navigator.userAgent;if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) {//安卓手機//alert("安卓手機");if(environment=="xiangshang"){serverUrl = "/hd/6/updateHeadImgNew";//線上環境(hd是線上做了nginx路徑映射)}else if(environment=="ceshi"){serverUrl = "/6/updateHeadImgNew";//測試環境}else if(environment=="bendi"){serverUrl = baseurl+"/6/updateHeadImgNew";//本地環境}} else if (u.indexOf('iPhone') > -1) {//蘋果手機// alert("蘋果手機");if(environment=="xiangshang"){serverUrl = "/hd/6/updateHeadImg";//線上環境(hd是線上做了nginx路徑映射)}else if(environment=="ceshi"){serverUrl = "/6/updateHeadImg";//測試環境}else if(environment=="bendi"){serverUrl = baseurl+"/6/updateHeadImg";//本地環境}} else if (u.indexOf('Windows Phone') > -1) {//winphone手機//alert("winphone手機");if(environment=="xiangshang"){serverUrl = "/hd/6/updateHeadImg";//線上環境(hd是線上做了nginx路徑映射)}else if(environment=="ceshi"){serverUrl = "/6/updateHeadImg";//測試環境}else if(environment=="bendi"){serverUrl = baseurl+"/6/updateHeadImg";//本地環境}}else{// alert("其他");if(environment=="xiangshang"){serverUrl = "/hd/6/updateHeadImg";//線上環境(hd是線上做了nginx路徑映射)}else if(environment=="ceshi"){serverUrl = "/6/updateHeadImg";//測試環境}else if(environment=="bendi"){serverUrl = baseurl+"/6/updateHeadImg";//本地環境}}// alert(serverUrl);var uploader = WebUploader.create({    // swf檔案路徑    swf: 'webuploader/Uploader.swf',    auto: true,    // 檔案接收服務端。    server: serverUrl,//本地測試地址    //     server: '/hd/6/updateHeadImgNew',//線上地址            fileVal :'image',        //縮圖    thumb:{        width: 100,        height: 100,        // 圖片品質,只有type為`image/jpeg`的時候才有效。        quality: 70,        // 是否允許放大,如果想要產生小圖的時候不失真,此選項應該設定為false.        allowMagnify: false,        // 是否允許裁剪。        crop: true,        // 為空白的話則保留原有圖片格式。        // 否則強制轉換成指定的類型。        type: 'image/jpeg'    },            compress:{        width: 1000,        height: 1000,        // 圖片品質,只有type為`image/jpeg`的時候才有效。        quality: 90,        // 是否允許放大,如果想要產生小圖的時候不失真,此選項應該設定為false.        allowMagnify: false,        // 是否允許裁剪。        crop: false,        // 是否保留頭部meta資訊。        preserveHeaders: true,        // 如果發現壓縮後檔案大小比原來還大,則使用原來圖片        // 此屬性可能會影響圖片自動糾正功能        noCompressIfLarger: false,        // 單位位元組,如果圖片大小小於此值,不會採用壓縮。        compressSize: 0    },    // 選擇檔案的按鈕。可選。    // 內部根據當前運行是建立,可能是input元素,也可能是flash.    pick: '#picker',    // 不壓縮image, 預設如果是jpeg,檔案上傳前會壓縮一把再上傳!    resize: true,        //目前移動端有幾個重要的 bug 在此列出來以免大家踩坑。    /*上傳請求內容為空白,這是 android 4 的一個bug,只要 file 的 blob資料修改過,通過 xhr2 去發送就有這個問題。 詳情:https://code.google.com/p/android/issues/detail?id=39882解決方案: 發送的時候採用二進位方案,即 把 sendAsBinary 設定成true, 通過這種方式可以避免這個問題。後端接受需要小改動一下。*/        sendAsBinary:true,        fileNumLimit:1,    // 只允許選擇圖片檔案。    accept: {        title: 'Images',        extensions: 'gif,jpg,jpeg,bmp,png',        mimeTypes: 'image/*'    }    });uploader.on( 'fileQueued', function( file ) {    uploader.makeThumb( file, function( error, ret ) {        if ( error ) {            $li.text('預覽錯誤');        } else {        $("#picker").first("div").html("");        $("#thumb").html('<img alt="" src="' + ret + '" />');        $("#loading1").show();        }    });});uploader.on( 'uploadSuccess', function( file,result ) { $( '#'+file.id ).addClass('upload-state-done');var qiuniuurl1 = result.data.usIco;$("#pichidden_1").val(qiuniuurl1);$("#loading1").hide();});});

伺服器程式:

IOS調用

@RequestMapping("/updateHeadImg")@ResponseBodypublic ApiResult updateHeadImg(String name) {ApiResult apiResult = new ApiResult();byte[] imageByte = null;try {InputStream inputStream = getRequest().getInputStream();imageByte = org.apache.commons.io.IOUtils.toByteArray(inputStream);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 上傳檔案if (imageByte.length>0) {String filename = UUIDUtil.getUUID() + name;String key ="";if (upurl != null) {Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");String dateUrl = sdf.format(date);key = upurl + dateUrl + "/" + filename;}//byte[]  imageByte = this.cropBytes(image.getInputStream(), 420);System.out.println("key------------------------"+key);boolean flag = QiniuUtil.IVYBABY.uploadFile(key, imageByte);System.out.println("flag:----------------"+flag);System.out.println("上傳七牛:" + flag);apiResult.getData().put("usIco",BASE_QN_URL+key+"?imageView2/1/w/420");} else {apiResult.setMsg("圖片不可為空");}System.out.println(JSON.toJSONString(apiResult));return apiResult;}

安卓調用:

@RequestMapping("/updateHeadImgNew")@ResponseBodypublic ApiResult updateHeadImgNew() {ApiResult apiResult = new ApiResult();String imgUrl = "";InputStream inputStream = null;String bendiPic = "";try {inputStream = getRequest().getInputStream();//當前日期Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");String dateUrl = sdf.format(date);String path="/static/imgtest/"+dateUrl;//線上路徑//String path="D://imgtest/"+dateUrl;//測試//建立檔案夾File f = new File(path);if(!f.exists())f.mkdirs(); //上傳圖片到本地bendiPic = path+"/"+UUIDUtil.getUUID()+".png";//線上地址System.out.println("bendiPic:"+bendiPic);//裁切,並儲存本地ImageUtil.crop(inputStream, 420, bendiPic);System.out.println("-----------本地儲存路徑:-----------"+bendiPic);//準備keyString filename = UUIDUtil.getUUID() + ".png";String key = upurl + dateUrl + "/" + filename;//上傳七牛boolean flag = QiniuUtil.IVYBABY.uploadFile(key, bendiPic);//如果上傳七牛失敗,則返回本地路徑if(flag){imgUrl = BASE_QN_URL+key+"?imageView2/1/w/420";}else{//這裡做的檔案對應,用網域名稱映射上面的真是路徑/static/imgtest/xxxxx.pngimgUrl = "static.ivybaby.me/imgtest/"+bendiPic;}apiResult.getData().put("usIco",imgUrl);} catch (Exception e) {// TODO Auto-generated catch blockapiResult.setMsg("圖片不可為空");e.printStackTrace();}System.out.println("--------------imageUrl--------------【"+imgUrl+"】");return apiResult;}



百度上傳組件:webuploader

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.