1. 程式人生 > >圖片批量上傳

圖片批量上傳

html批量上傳圖片到javaproject,然後由後臺轉到oss或存入本地;

其實最主要碰到的問題還是接受前端傳入圖片:分為單張圖片上傳,多個單張圖片上傳,和一個標籤多張圖片上傳。

 @RequestMapping(value = "/uploadPhoto", method = RequestMethod.POST)
    @ResponseBody
    public ResultDto handleFileUpload(HttpServletRequest request) {
        ResultDto resultDto = new ResultDto();
        List<MultipartFile> files = ((MultipartHttpServletRequest) request)
                .getFiles("file");
}

接受圖片的格式是MultipartFile,這個格式轉file也是一個大坑。

詳情可以看下這個連結,https://www.cnblogs.com/hahaxiaoyu/p/5102900.html

如果只是為了把檔案資料寫入目錄,直接通過資料流就行,但阿里雲的oss介面接受的是file格式,所以選了一個感覺靠譜一點的。

      for (int i = 0; i <files.size(); i++) {
            MultipartFile file = files.get(i);
            String str = file.getOriginalFilename();
            String[] strArray = str.split("\\.");
            String name=getPath()+"."+strArray[1];
            path = "temp/"+name;
            f = new File(path);
            try {
                FileUtils.copyInputStreamToFile(file.getInputStream(), f);
                md5key = AliyunOSSClientUtil.uploadObject2OSS(ossClient, f,name, BACKET_NAME, FOLDER);
                if(StringUtils.isNotBlank(md5key)){
                    String url="http://htaocar.oss-cn-hangzhou.aliyuncs.com/car/" + f.getName();
                    int len = addPhoto(i,carId,f.length(),url);
                    if(len>0){
                        message="上傳圖片成功";
                    }
                }else {
                    message = "上傳出錯";
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            logger.info("http://htaocar.oss-cn-hangzhou.aliyuncs.com/car/" + f.getName());
        }


通過copyInputStreamToFile在本地對應的目錄裡儲存,然後用file再讀出來,最後發給阿里雲。

阿里雲提供的介面是直接接受file但由於檔名是我後臺自動生成的,所以改了下官網提供的介面,把檔名當引數穿進去了。

罷了,乾脆把oss上傳的程式碼也貼一下吧

   /**
     * 上傳圖片至OSS
     *
     * @return String 返回的唯一MD5數字簽名
     */
    public static String uploadObject2OSS(OSSClient ossClient, File file,String fileName, String bucketName, String folder) {
        String resultStr = null;
        try {
            /**檔案流上傳方式暫定,web改成 資料流*/
            //以輸入流的形式上傳檔案
            InputStream is = new FileInputStream(file);
//            //檔名
//            String fileName = file.getName();
            //檔案大小
            Long fileSize = file.length();
            //建立上傳Object的Metadata
            ObjectMetadata metadata = new ObjectMetadata();
            //上傳的檔案的長度
            metadata.setContentLength(is.available());
            //指定該Object被下載時的網頁的快取行為
            metadata.setCacheControl("no-cache");
            //指定該Object下設定Header
            metadata.setHeader("Pragma", "no-cache");
            //指定該Object被下載時的內容編碼格式
            metadata.setContentEncoding("utf-8");
            //檔案的MIME,定義檔案的型別及網頁編碼,決定瀏覽器將以什麼形式、什麼編碼讀取檔案。如果使用者沒有指定則根據Key或檔名的副檔名生成,
            //如果沒有副檔名則填預設值application/octet-stream
            metadata.setContentType(getContentType(fileName));
            //指定該Object被下載時的名稱(指示MINME使用者代理如何顯示附加的檔案,開啟或下載,及檔名稱)
            metadata.setContentDisposition("filename/filesize=" + fileName + "/" + fileSize + "Byte.");
            //上傳檔案   (上傳檔案流的形式)
            PutObjectResult putResult = ossClient.putObject(bucketName, folder + fileName, is, metadata);
            //解析結果
            resultStr = putResult.getETag();
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("上傳阿里雲OSS伺服器異常." + e.getMessage(), e);
        }
        return resultStr;
    }

相關推薦

thinkphp5 結合plupload實現圖片批量

在extend目錄下新增目錄uploader,並新建類Uploads <?php namespace uploader; class Uploads { public static function upfile($file, $path = 'images', $add_domai

.NET使用swfupload實現圖片批量

var swfobject=function(){var X="undefined",P="object",a="visibility:visible",e="visibility:hidden",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",V=

分享一個圖片管理程式,圖片批量,圖片管理(有圖片)

呵呵,好久沒寫部落格了。今天在此奉上一篇! 關於圖片管理,其實做專案很多地方都用到圖片管理。 比如:產品圖片,新聞圖片,作品圖片。 現分享一篇關於圖片管理的文章,希望大家能用得上。 先來看效果圖吧: 上傳頁面 上傳頁面2圖片選擇頁面。 主要功能: 1.圖片批量上傳。 1)

【開源】1句程式碼搞定圖片批量,無需什麼程式碼功底【無語言界限】

/// <summary> /// 圖片上傳 /// </summary> /// <returns></returns> public JsonResult Upload(HttpPo

筆記-關於圖片批量

1.使用webuploader :http://blog.csdn.net/qq_23959411/article/details/47659387 2.mui但圖片上傳:http://jishiwe

圖片批量

html批量上傳圖片到javaproject,然後由後臺轉到oss或存入本地; 其實最主要碰到的問題還是接受前端傳入圖片:分為單張圖片上傳,多個單張圖片上傳,和一個標籤多張圖片上傳。 @RequestMapping(value = "/uploadPhoto", meth

WebAPI圖片批量+修改圖片名稱

前言: 這幾天在做一個圖片上傳的API,在網上找了很多資料,也學到了很多東西,最近剛接觸WebAPI,好多東西都看不懂。 還停留在webfrom的概念, 哈哈 其實webfrom也沒學好,廢話不多說了,先看程式碼。 public async Task<HttpResp

aws s3 圖片批量工具 CLI

1、aws文件https://aws.amazon.com/cn/getting-started/tutorials/backup-to-s3-cli/2、批量上傳需要加--recursiveC:\Users\85122>aws s3 cp E:\20180523\ s

圖片批量到阿里雲伺服器

上傳圖片頁面 <html>   <head>     <base href="<%=basePath%>">          <title>上傳圖片</title>     <meta http

修改KindEditor圖片批量數量和大小限制

KindEditor批量影象上載,默許答應使用者一起上載20張影象,單張影象容量不超越1MB。 有時不滿足咱們的需要,就需要修正KE批量上載影象的個數和單個影象鉅細限制。 KindEditor 4.1.11: 辦法一:呼叫KE時裝備好引數就行,程式碼如下

Layui+SpringMVC實現圖片批量

最近需要做一個批量上傳圖片的功能,為豐富前端框架的拓展學習使用,這次打算用layui前端框架實現,原始碼放在文章底部,廢話不多說,先上演示效果執行前:操作後:一、匯入對應的layui樣式及其資原始檔1.引入對應的css及其js檔案2.編輯上傳的頁面3.上傳檔案的js配置<

thinkphp5 整合plupload實現圖片批量

<?php /*   * 檔案上傳  *   * Donald  * 2017-3-21  */ namespace app\backend\logic; use think\Model; class Plupupload extends Model{     public function uploa

**關於阿里雲oss圖片批量問題解析**

關於阿里雲oss圖片批量上傳問題解析 背景 最近在專案開發過程中遇到的問題,消耗了比較久的時間,過程曲折,雖然最終達到目的,但是鑑於各種常用的雲資料在物件儲存方面大同小異,所以記錄一下。 理一下思路: 我們在呼叫第三方物件儲存API的時候,通常需要解決以

ckeditor添加自定義按鈕整合swfupload實現批量圖片

下載 了解 nbsp 文件 mouseover 去掉 dial size pro ckeditor添加自定義按鈕整合swfupload實現批量上傳圖片給ckeditor添加自定義按鈕,由於ckeditor只能上傳一張圖片,如果要上傳多張圖片就要結合ckfinder,而ckf

iOS 批量圖片的 3 種方法

except 現在 文章 rap 鏈式調用 bsp 不知道 working truct AFNetworking 在去年年底升級到了 3.0。這個版本更新想必有很多好處,然而讓我吃驚的是,它並沒有 batch request 接口。之前的 1.x 版本、2.x 版本都實現

ASP批量和編輯圖片

關於這個問題也算是老生常談,但是我相信還是有不會的朋友。寫這篇文章主要是對那些需要的朋友,對於大牛,就可以不看了。,寫的不好,還請大牛指點一二啊。 本人QQ:1127173874. 第一,相關的JS檔案和上傳類,主要是jquery-1.4.2.js和jquery.livequery.js,U

純js批量預覽圖片

前提:<script src="js/jquery.min.js"></script> 參考:http://www.jq22.com/jquery-info833 1.頁面程式碼 <!--第一張-->      

批量圖片(jQuery-File-Upload使用)

styles client lar new this thead alex pla multipl jQuery-File-Upload jQuery-File-Upload是一個jquery下的ajax文件上傳插件,支持批量上傳,github地址:https://gith

SSM中使用Kindeditor外掛實現圖片批量與回顯

圖片上傳的方式: 1.上傳到資料庫中的Blob型別,從資料庫中取出來並顯示。詳細見下面連結 http://blog.sina.com.cn/s/blog_5b0745e80102we31.html 2.上傳到伺服器的固定目錄下,在資料庫中僅儲存圖片的地址。詳細見下文 效果

基於“formData批量的多種實現” 的多圖片預覽、的多種實現 formData批量的多種實現

  前言   圖片上傳是web專案常見的需求,我基於之前的部落格的程式碼(請戳:formData批量上傳的多種實現)裡的第三種方法實現多圖片的預覽、上傳,並且支援三種方式新增圖片到上傳列表:選擇圖片、複製貼上圖片、滑鼠拖拽圖片,同時支援從上傳列表中移除圖片(點選“X”號)      效果演示   選擇