1. 程式人生 > >web uploader 框架上傳圖片,java後臺處理

web uploader 框架上傳圖片,java後臺處理

前言:最近剛剛接觸到微信端的開發,使用到了web uploader 框架作為上傳元件,初步接觸,走進了很多坑,在不斷的試驗,查文件基礎上終於解決了這個問題。再次記錄,希望能夠使其他使用此框架上傳圖片的初學者少走彎路。
目錄:
1.web uploader前臺程式碼實現
2.Java後臺接收處理
3.前臺圖片回顯(多張圖片上傳)

.前臺程式碼:web uploader

1.前臺js,需要注意 上傳方式一定要設定成 sendAsBinary: true 。用火狐瀏覽器除錯時,可以看到設定後上傳content-type 為image型別。(這裡只是程式碼片段,需要注意的地方,並不完全)

        /*圖片上傳*/
        jQuery(function() {
            var $ = jQuery,
                    $list = $('#fileList'),
            // 優化retina, 在retina下這個值是2
                    ratio = window.devicePixelRatio || 1,
            // 縮圖大小
                    thumbnailWidth = 100 * ratio,
                    thumbnailHeight = 100
* ratio, // Web Uploader例項 uploader; // 初始化Web Uploader uploader = WebUploader.create({ // 自動上傳。 auto: true, // 檔案接收服務端。 server: '/uploadPic',// 此處伺服器測試時可以寫本地服務,上傳的Java後臺請求地址 sendAsBinary: true
,// 上傳方式 pick : { id : '.filePicker', //只能選擇一個檔案上傳 multiple: false }, duplicate:true,//可以重複 resize : true,// 不壓縮image, 預設如果是jpeg,檔案上傳前會壓縮一把再上傳! // 只允許選擇檔案,可選。 accept: { title: 'Images', extensions: 'gif,jpg,png,jpeg', mimeTypes: 'image/*' }, }) });

二.Java後臺接受處理

@RequestMapping(value = "/uploadPic", method = RequestMethod.POST)
    public void uploadPic(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String name = request.getParameter("name");// 檔名稱
        String type = name.substring(name.lastIndexOf(".") + 1);// 檔案型別
        name = DateTools.getDateAndTime() + "." + type;// 重新定義圖片名稱,DateTools.getDateAndTime() 工具類,產生時間戳短碼,可以自己根據需求重新定義 

        String path ="xxx";//這裡儲存圖片路徑 D:\ 這樣
        path = path + File.separator + name;// 拼接路徑
        ServletInputStream inputStream = request.getInputStream();// ***獲取位元組流,圖片儲存在這裡,切記這裡只可以獲取一次。***
        File uploadFile = new File(path);// 路徑檔案,一定要有資料夾,沒有則建立,mkdir
        FileCopyUtils.copy(inputStream, new FileOutputStream(uploadFile));// 複製圖片
        inputStream.close();// 關閉io,這裡寫的簡陋了些,程式碼從簡

        String realPath= uploadFile.getPath();//realPath 為圖片真路徑
        // 格式 : http://192.1.1.1/xxxx/name 類似這樣在公網顯示
        JSONObject json = new JSONObject();
        json.put("path", realPath);// 引用路徑
        json.put("flag", "success");// 標識
        response(response, json.toJSONString());// 儲存圖片完成,返回前臺進行回顯
    }

三..前臺圖片回顯(多張圖片上傳)

這裡是我的前臺html程式碼,需要注意的是div巢狀的的排序格式。

<div class="pro-upload s">
 <div class="pro-uploads">
     <img id="img5" src="xxx/images/pro_img_07_07.png"><!-- 初始引用圖片路徑 -->
     <a href="javascript:void(0);" class="btn-tu filePicker btn_cl webuploader-container" imagetype="5">
         <div class="webuploader-pick"></div>
         <div style="top: 0px; left: 0px; width: 100%; height: 100px; overflow: hidden;">
             <input type="hidden" name="lgback_picpath" id="lgback_picpath"/>
             <input type="file" name="lgback_picpath_n" id="lgback_picpath_n" class="webuploader-element-invisible" accept="image/*">
             <label style="opacity: 0; width: 100%; height: 100%; display: block; cursor: pointer; background: rgb(255, 255, 255);"></label>
         </div>
     </a>
     <span id="close5" class="colse_cl" style="display:none;"><img src="${preserverStyleServierPath}/images/cose1.png"></span>
 </div>
 <div class="frm-txt-center" name="lgback_name">測試圖片05</div>
</div>

webuploader 程式碼,可以根據var uploaderId = ‘rt_’+file.source.ruid; 這種方式獲取當前上傳div的id,用chrom可以發現,當圖片上傳時頁面會浮動出一個臨時div而這種獲取id 的方式就是獲取臨時div 的id,再根據臨時div 的id定位到html頁面原本的div 確定回顯未知,img型別,將傳回來的路徑傳入img即可。

uploader.on( 'uploadSuccess', function( file,str ) {
mui.alert("上傳成功","提示資訊","確定");

var uploaderId = 'rt_'+file.source.ruid;// 獲取當前節點id
var $this = $("#"+uploaderId).parent();// 獲取當前節點父類節點 a標籤
var par = $this.parent();// 獲取當前節點祖父節點 div
par.find("img:first").attr("src",str.path);// 獲取祖父節點下第一個img標籤,並賦值
par.find("a:first").find("div:first").find("div:last").find("input:first").attr("value",str.pathPic);// 這裡是將儲存在資料庫中的路徑寫入input中 pathPic 是存在資料庫中的格式,這裡的Java程式碼我沒有寫出
});

相關推薦

web uploader 框架圖片java後臺處理

前言:最近剛剛接觸到微信端的開發,使用到了web uploader 框架作為上傳元件,初步接觸,走進了很多坑,在不斷的試驗,查文件基礎上終於解決了這個問題。再次記錄,希望能夠使其他使用此框架上傳圖片的初學者少走彎路。 目錄: 1.web uploader前臺

nodejs express 框架 圖片頭像問題

上傳圖片總結: 必須 安裝’multer’模組 Npm I multer –S(手動輸入小寫) 第一步 App.js 裡面 掛載index路由之前寫入 app.use(express.static(path.join(__dirname, 'public'))); var mul

Spring MVC圖片Java二進位制圖片寫入資料庫生成略縮圖

步驟:1.將圖片上傳到伺服器的一個磁碟目錄下。 2.將剛才上傳好的圖片寫入資料庫image欄位。 一、上傳圖片:使用的是spring mvc 對上傳的支援。 jsp 頁面: <form name="uploadForm" id="uploadForm" m

010-java 表單方式或者base64方式圖片後端使用nutz的post轉發圖片到另一個請求

本地上傳圖片 方式一、使用表單方式上傳-enctype <form enctype="multipart/form-data" method="post" action="http://face.lhx.com/auth" id='formBox' name="form">

java模擬表單檔案java通過模擬post方式提交表單實現圖片功能例項

package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.

使用 CKEditor 圖片 粘貼屏幕截圖

要求 license 回調 wan ade 做成 操作 rms 粘貼 之前寫過wangEditor,那真是好用,文檔也清晰,半天就搞定了,無奈沒有對應license,只好選擇別的。 外語一般,閱讀理解都靠蒙。CKEditor官方文檔看的我雲裏霧裏,國內的博客比較少,

百度WebUploader圖片圖片回顯編輯查看

set 唯一性 original 無需 同名 sch nag fin enum 頁面前端使用的是bootstrap,java後端springMVC , 上傳用的WebUploader,先說說上傳圖片,回顯編輯圖片在下一篇 如果僅僅只需要上傳圖片,不需要回顯進行編輯圖片,使用

html   圖片本頁預覽

html 上傳圖片 本頁預覽 直接上代碼<!DOCTYPE html><html><head><meta charset="UTF-8"><title>圖片上傳預覽</title><script type="text/j

C# 使用FileUpload控件圖片將文件轉換成二進制進行存儲與讀取

擴展 實現 bmi extension aaa 插入數據 問題 pup cat 狀況描述:   需要上傳文件,但是不想要保存到實體路徑下,便可以用該功能來實現。 效果圖:      點擊【Upload】按鈕,上傳文件到數據庫;   點擊【Preview】,預覽文件;

微信jssdk圖片一張一張的 和 一次性好幾張

pla can 參數錯誤 其他 屬性 使用 down pop menu //html模板 <div class="zhaopin_3_2"> <div id="bbb"></div> &

小程序圖片排隊

length 內容 ext 有效 ges mar 顯示 func 沒有 //沒有處理的wxml,但是有效果,可以簡單試驗一下 <view class=‘minbox1‘> <text class=‘red wzgs‘>*</text>

php 中使用cURL發送get/post請求圖片處理

cit gda 抓取 記錄 rem 學習 網頁 lose XML https://mp.weixin.qq.com/s/8luqMEd8xt8oJxFLLCU1XA 文章正文 cURL是利用url語法規定傳輸文件和數據的工具。php中有curl拓展,一般用來實現網絡抓取,模

微信小程式圖片視訊及預覽

wxml <!-- 圖片預覽 --> <view class='preview-warp' wx:if="{{urls}}"> <image src='{{urls}}' /> </view> <view class="prew_video"

layer 彈框 cropper 裁剪圖片thinkphp 3 使用 CropAvatar.class.php

最近要做一個上傳裁剪圖片功能,但是網上收出來的東西,知識點都是對的。但是就是沒說清楚,也無法連續起來用。 經過自己整理出來的一套程式碼,親測可用! 不用多說,直接上菜。 PS:搜尋引擎收錄的還是很垃圾...... 呼叫頁面,簡單程式碼(可複用) <img src="{$info.co

layui-圖片可使用選擇圖片->圖片預覽圖片刪除圖片(轉載)

原文地址:https://gitee.com/AMortal/codes/qt8m6zk30u1g4evr95jhx13 <!DOCTYPE html> <html> <head> <meta

利用ajax圖片並使用CURL呼叫介面

這是我第一次使用ajax上傳檔案,並且不通過form表單進行上傳,之前使用ajax上傳檔案時是藉助一個叫form.js的檔案,可以直接使用$.ajaxSumbmit直接提交表單,但這次不同,就是使用ajax上傳,並且將圖片資訊放在ajax要上傳的資料data陣列或物件中,怎麼

微信公眾號開發之選擇圖片圖片下載圖片顯示圖片

function clickImg(that){ wx.chooseImage({ count: 1, needResult: 1, sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓

iOS整合七牛雲(圖片視訊音訊等檔案)

用的CocoaPods匯入SDK platform :ios,'9.0' target '專案名' do pod 'AFNetworking' pod 'Qiniu' end 匯入標頭檔案 #import<QiniuSDK.h> #i

input圖片並且實現FileReader實圖片預覽效果

input img <img :src="upImg" alt=""> //屬性繫結為upImg在data()中聲名 <input class="lost" type="file" id="file" @change="upLoadImg($event)" ref="f