1. 程式人生 > >關於實現微信小程式一次性上傳多張圖片所遇到問題的解決方案

關於實現微信小程式一次性上傳多張圖片所遇到問題的解決方案

 /**
     * 圖片上傳
     *
     * @return
     * @throws Exception
     */
    //@ExcLoginInterceptor 自定義的攔截器註解
    @RequestMapping(value = "/upload",produces = "application/json;charset=utf-8")
    @ResponseBody
    public String uploadPicture(HttpServletRequest request) throws Exception{
        String message = IConstants.Response_S.FAILED;
        //獲取檔案需要上傳到的路徑
        String path = request.getServletContext().getRealPath("/upload")+"/";
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdir();
        }
        try {
            request.setCharacterEncoding("utf-8");  //設定編碼
            //獲得磁碟檔案條目工廠
            DiskFileItemFactory factory = new DiskFileItemFactory();

            //如果沒以下兩行設定的話,上傳大的檔案會佔用很多記憶體,
            //設定暫時存放的儲存室,這個儲存室可以和最終儲存檔案的目錄不同
            factory.setRepository(dir);
            //設定快取的大小,當上傳檔案的容量超過該快取時,直接放到暫時儲存室
            factory.setSizeThreshold(1024 * 1024);
            //檔案上傳處理
            ServletFileUpload fileUpload = new ServletFileUpload(factory);
            List<FileItem> list =fileUpload.parseRequest(request);
            FileItem picture = null;
            for (FileItem item : list) {
                //獲取表單的屬性名字
                String name = item.getFieldName();
                //如果獲取的表單資訊是普通的 文字 資訊
                if (item.isFormField()) {
                    //獲取使用者具體輸入的字串
                    String value = item.getString();
                    request.setAttribute(name, value);
                } else {
                    picture = item;
                    //根據當前時間生成圖片的名稱(需要自己封裝寫方法--當然也可以按自己的規則生成圖片名稱)
                    String pictureName = DateTool.dateToMS_Str(new Date()).replaceAll(" ","").replaceAll("-","").replaceAll(":","").replace(".","");
                    //自定義上傳圖片的名字
                    String fileName = pictureName+".jpg";
                    String destPath = path + fileName;
                    //此處可以儲存與資料庫,程式碼省略……    
                    //真正寫到磁碟上
                    File file = new File(destPath);
                    OutputStream out = new FileOutputStream(file);
                    InputStream in = picture.getInputStream();
                    int length = 0;
                    byte[] buf = new byte[1024];
                    // in.read(buf) 每次讀到的資料存放在buf 陣列中
                    while ((length = in.read(buf)) != -1) {
                        //在buf陣列中取出資料寫到(輸出流)磁碟上
                        out.write(buf, 0, length);
                    }
                    message=IConstants.Response_S.SUCCESS;
                    in.close();
                    out.close();
                }
            }

        } catch (FileUploadException e1) {
            logger.error("", e1);
            message=IConstants.Response_S.FAILED;
        } catch (Exception e) {
            logger.error("", e);
            message=IConstants.Response_S.FAILED;
        }
        return message;
    }
                小程式程式碼如下:

相關推薦

關於實現程式一次性圖片遇到問題的解決方案

/** * 圖片上傳 * * @return * @throws Exception */ //@ExcLoginInterceptor 自定義的攔截器註解 @RequestMapping(value = "/upload",produces

程式程式碼,稽核釋出程式

1.開啟微信開發者工具 管理員掃碼 -> 填寫好小程式的專案目錄、AppID(必須是客戶已註冊好的AppID)、專案名稱 2.在app.js中修改id(客戶登入後臺管理系統的id),app.json中修改頁面導航欄標題navigationBarTitleText

程式視訊

1、wxml <video id='video{{idx}}' show-center-play-btn="{{true}}" src='{{videoUrl}}' controls="true" objectFit="cover"> </video> <b

程式如何圖片至伺服器(node.js例項分享)

一、前臺處理 (1)首先在wxml中為按鈕繫結上傳圖片事件 <button bindtap="upImgClick">上傳圖片</button> <image src='{{imgUrl}}'></image>

程式檔案圖片

1:xml <view style="margin-top: 20px" class="weui-flex">   <view style="width: 35%;font-size: 0.7em">證件照片</view>   <

程式 如何音視訊到百度雲Bos cloud BCE

在做了一系列調查之後,目前為止暫未發現有相關的文章,在此簡單記錄一下解決此問題的步驟,造福來人。本人的解決方案參考了百度雲BOS官方文件,地址如下:使用wx.uploadFile介面上傳。其中,需要特別關注的是:百度雲通過Post方式上傳Object,要求必須存在Policy

程式如何,提交稽核,釋出操作

微信小程式如何上傳、提交稽核、釋出操作 工具/原料 微信開發工具 小程式 方法/步驟 首先,賬號登陸微信公眾號後臺進行設定小程式基本資訊設定操作 登陸後,設定小程式基本資訊,包括名稱、頭像、介紹及服務範圍,開發設定中的伺服器域名設定

程式怎麼程式碼

很多企業商家做了微信小程式,都想自己獨立的去操作後臺,但大多企業商家都沒有相關的技術人員,就上傳程式碼都成了問題,以下微信小程式觀察網請新增連結描述就和大家分享一下微信小程式怎麼上傳程式碼,希望對您有幫助! 第一步:登入微信公眾號後臺進行小程式基本資訊設定操作第二步:設定小程式基本資訊,包括名稱、頭像、介紹

程式/網站 圖片到騰訊雲COS

COS簡介: 騰訊雲提供的一種物件儲存服務,供開發者儲存海量檔案的分散式儲存服務。可以將自己開發的應用的儲存部分全部接入COS的儲存桶中,有效減少應用伺服器的頻寬消耗等。個人也可以通過騰訊雲賬號免費使用COS6個月,https://cloud.tencent.com/prod

程式之----圖片

  微信小程式上傳圖片用到的api wx.chooseImage(OBJECT)wx.previewImage(OBJECT)wx.uploadFile(OBJECT) 這幾個基本的api的使用方法可

程式swiper同時顯示三圖片樣式

<view class="pre-box"> <!--預售產品輪播--> <swiper autoplay="{{autoplay}}" interval="3000" class='swiper-pre' next-margin="7

5行程式碼實現程式圖片與騰訊免費5G儲存空間的使用

本文介紹瞭如何在微信小程式開發中使用騰訊官方提供的雲開發功能快速實現圖片的上傳與儲存,以及介紹雲開發的 5G 儲存空間的基本使用方法,這將大大提高微信小程式的開發效率,同時也是微信小程式系列教程的視訊版更新的文字版本摘要。 此文為 「60 節實戰課微信小程式開發視訊教程」 的第 51 小節

程式開發(5)——圖片

上傳圖片的流程是:本地將圖片上傳到——》微信臨時伺服器,能夠返回臨時圖片檔案地址——》再將臨時圖片檔案地址傳輸給服務端——》服務端從微信伺服器上下載臨時圖片檔案儲存在服務端上 這個流程有點繞,花了點時間,踩了幾腳坑才成功。 1.圖片選擇框 <view class=

程式 返回一頁面時實現一頁面重新整理

假如從頁面B返回頁面A時實現頁面A重新整理 頁面B: var pages = getCurrentPages();//當前頁面棧 if (pages.length > 1) { var beforePage = pages[pages.length - 2];/

程式 返回一頁並

itemClick: function(e) { let pages = getCurrentPages(); let prevPage = pages

程式圖片

開發微信小程式應用中有個需求就是客戶評價和下工單,這裡都會用到上傳多張圖,在之前寫的一篇部落格關於微信小程式上傳多張圖線下測試還可應用但是線上不可以,查詢原因是因為執行緒的原因所以會用到遞迴的方法解決。 首先在app.js 中定義一個方法 uploadimg:func

程式 圖片

小程式會用到一些上傳的模組,這裡分享一下小程式原生上傳的外掛,轉自朋友的部落格。 HTML部分: <!-- 選擇圖片 --> <view class='up-pic'> <vie

程序/網站 圖片到騰訊雲COS

arr n) ram index.php 函數返回 tps etag 循環 5.0 COS簡介: 騰訊雲提供的一種對象存儲服務,供開發者存儲海量文件的分布式存儲服務。可以將自己開發的應用的存儲部分全部接入COS的存儲桶中,有效減少應用服務器的帶寬,請求等。個人也可以通過騰訊

程式跳轉引數

跳轉傳參頁面 wx.navigateTo({ url: '../beiyun/beiyun?引數一=' + 引數一的值+‘&引數二’+引數二的值, }) 接收引數的頁面 頁面載入時接收 onLoad: function(options)

程式——父子元件參以及方法的呼叫

父元件向子元件傳參 A元件為父元件,B元件為子元件,以下是A元件向B元件傳參 在A元件中引入B元件(父元件引入子元件) 在A元件的json中寫入(父元件): { "component": true, "usingComponents": { "com