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

教你Springboot如何實現(xiàn)圖片上傳

 更新時間:2023年07月06日 09:05:22   作者:高級java開發(fā)  
這篇文章主要介紹了教你Springboot如何實現(xiàn)圖片上傳,首先大家明白圖片上傳,需要在數(shù)據(jù)庫定義一個varchar類型的img字段圖片字段,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下

1.首先圖片上傳,需要在數(shù)據(jù)庫定義一個varchar類型的img字段圖片字段

2.需要在pom文件加圖片上傳的配置文件

        <!--上傳圖片-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

3.在yml里添加限制圖片大小

#配置mysql的連接
spring:
  #圖片上傳
  servlet:
    multipart:
      enabled: true
      max-file-size: 50MB
      max-request-size: 50MB

4.html頁面定義div

    <div class="form-group">
        <label  class="col-sm-2 control-label">圖片</label>
        <div class="col-sm-10">
            <input name="goodsImg" id="testimg">
            <!-- imgfile  是上傳圖片的參數(shù)  類型是 MultipartFile 文件類型
                     imgfile 必須和后臺 上傳圖片的方法 uploadImg  參數(shù)保持一致 -->
            <input type="file" multiple class="projectfile" accept="image/*" name="imgfile" id="goodsImg">
        </div>
    </div>

js中定義函數(shù) 圖片上傳

<script>
    //上傳圖片
    function uploadImg(url){
        $('#goodsImg').fileinput({
            initialPreview:url,
            //初始化圖片配置:
            initialPreviewConfig: [
                {key: 1, showDelete: false}
            ],
            //是否初始化圖片顯示
            initialPreviewAsData: true,
            language: 'zh', //設(shè)置語言
            uploadUrl: '/user/uploadImg', //上傳的地址
            allowedFileExtensions: ['jpg', 'gif', 'png'],//接收的文件后綴
            showUpload: true, //是否顯示上傳按鈕
            showCaption: false,//是否顯示標題
            browseClass: "btn btn-primary", //按鈕樣式
            maxFileCount: 2, //表示允許同時上傳的最大文件個數(shù)
            enctype: 'multipart/form-data',
            validateInitialCount:true,
            previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
            msgFilesTooMany: "選擇上傳的文件數(shù)量({n}) 超過允許的最大數(shù)值{m}!",
        }).on('fileuploaded', function(event, data, previewId, index) {
            alert(data.response.path);//http
            //http://localhost:8080/ssm_bootstrap/upload/1279fabb-5515-44e2-84e8-4a7dd79cc08c.JPG
            var	imgval = "http://"+ location.host+"/"+data.response.path;
            $('#testimg').val(imgval);
        });
    }
</script>

5.圖片上傳工具類

public class FileUtil {
	//上傳
	/**
	 * <pre>uploadFile(上傳)   
	 * 創(chuàng)建人:wrx
	 * 創(chuàng)建時間:2023年3月29日 下午3:21:17    
	 * 修改人:ba
	 * 修改時間:2023年3月29日 下午3:21:17    
	 * 修改備注: 
	 * @param imgfile
	 * @param request
	 * @return</pre>
	 */
	public static String uploadFile(MultipartFile imgfile,HttpServletRequest request){
    	//1、上傳路徑:項目發(fā)布tomcat服務(wù)器
		//D:\workUtilsInstall\apache-tomcat-8.0.0\webapps\week_employee_hzy\\upload
		String path = request.getServletContext().getRealPath("/")+"/upload";
		File file = new File(path);
		if(!file.exists()){//不存在
			file.mkdirs();
		}
		//生成新的文件名稱,原因:防止文件名稱一樣后者上傳的文件會覆蓋前者上傳的文件(前提是文件名稱必須一樣并且在用一個目錄下)
		//生成新的文件名稱,保證文件名稱唯一有兩種方法:
		// 	  1.通過UUID實現(xiàn)文件名稱唯一 (UUID會生成32位字母+數(shù)字唯一的一個字符串)
		//	  2.通過時間戳現(xiàn)文件名稱唯一  (時間戳是毫秒級時間 時間會一直往上加,生成13位數(shù)字)注意只有java生成13位 其他則是10位比如oracle、mysql、php
		//  獲取時間戳
		//long currentTimeMillis = System.currentTimeMillis();
		//System.out.println(currentTimeMillis);
		String uuid = UUID.randomUUID().toString();
		String oldName = imgfile.getOriginalFilename();//1.jpg
		String suffix = oldName.substring(oldName.lastIndexOf("."));
		String newFile = uuid+suffix;
		File file2 = new File(path+"\\"+newFile);
		try {
			imgfile.transferTo(file2);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return "upload/"+newFile;
	}
}

6.Controller層調(diào)用圖片上傳方法

/**
     *
     *調(diào)用圖片上傳工具類
     * @param imgfile
     * @param request
     * @return java.lang.String
     * @author wrx
     * @date 2023/5/17 0017 16:00
     */
    @RequestMapping("uploadImg")
    public String uploadImg(MultipartFile imgfile, HttpServletRequest request){
        String filePath = FileUtil.uploadFile(imgfile, request);
        System.out.println("{\"path\":\"" + filePath + "\"}");
        return "{\"path\":\"" + filePath + "\"}";//可以
    }

訪問這個路徑http://localhost:8080/upload/b54e356b-6dba-48ae-8ea1-27b4dad158b5.png

訪問成功圖片上傳就完成了 

到此這篇關(guān)于教你Springboot如何實現(xiàn)圖片上傳的文章就介紹到這了,更多相關(guān)Springboot圖片上傳內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Netty分布式ByteBuf的分類方式源碼解析

    Netty分布式ByteBuf的分類方式源碼解析

    這篇文章主要為大家介紹了Netty分布式ByteBuf的分類方式源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • 詳細說明關(guān)于Java的數(shù)據(jù)庫連接(JDBC)

    詳細說明關(guān)于Java的數(shù)據(jù)庫連接(JDBC)

    這篇文章主要介紹了詳細說明關(guān)于Java的數(shù)據(jù)庫連接JDBC,JDBC是用Java語言向數(shù)據(jù)庫發(fā)送SQL語句,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Springboot項目打包如何將依賴的jar包輸出到指定目錄

    Springboot項目打包如何將依賴的jar包輸出到指定目錄

    公司要對springboot項目依賴的jar包進行升級,但是遇到一個問題,項目打包之后,沒辦法看到他里面依賴的jar包,版本到底是不是升上去了,沒辦法看到,下面通過本文給大家分享Springboot項目打包如何將依賴的jar包輸出到指定目錄,感興趣的朋友一起看看吧
    2024-05-05
  • 深入解析Spring Boot中的@ConfigurationProperties注解

    深入解析Spring Boot中的@ConfigurationProperties注解

    本文主要介紹了深入解析Spring Boot中的@ConfigurationProperties注解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2026-02-02
  • springboot臨時文件存儲目錄配置方式

    springboot臨時文件存儲目錄配置方式

    這篇文章主要介紹了springboot臨時文件存儲目錄配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法

    SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法

    這篇文章主要給大家介紹了關(guān)于SpringBoot中@ComponentScan注解過濾排除不加載某個類的3種方法,文中通過實例代碼介紹的非常詳細,對大家學習或者使用SpringBoot具有一定的參考學習價值,需要的朋友可以參考下
    2023-07-07
  • 學習在一臺新電腦上配置JAVA開發(fā)環(huán)境

    學習在一臺新電腦上配置JAVA開發(fā)環(huán)境

    本文主要介紹了如何在一臺新電腦上配置JAVA開發(fā)環(huán)境,每一個步驟都有對應(yīng)的截圖和文字說明,需要的朋友可以參考下
    2015-07-07
  • java解決單緩沖生產(chǎn)者消費者問題示例

    java解決單緩沖生產(chǎn)者消費者問題示例

    這篇文章主要介紹了java解單緩沖生產(chǎn)者消費者問題示例,需要的朋友可以參考下
    2014-04-04
  • Java源碼刨析之ArrayQueue

    Java源碼刨析之ArrayQueue

    在本篇文章當中主要給大家介紹一個比較簡單的JDK為我們提供的容器ArrayQueue,這個容器主要是用數(shù)組實現(xiàn)的一個單向隊列,整體的結(jié)構(gòu)相對其他容器來說就比較簡單了
    2022-07-07
  • Springboot Autowried及Resouce使用對比解析

    Springboot Autowried及Resouce使用對比解析

    這篇文章主要介紹了Springboot Autowried及Resouce使用對比解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論

遵化市| 莱芜市| 蒙阴县| 淳安县| 界首市| 海淀区| 华亭县| 北流市| 沭阳县| 台南县| 汝南县| 富锦市| 个旧市| 昭平县| 白朗县| 沈阳市| 潮安县| 延安市| 平阳县| 靖安县| 怀化市| 中宁县| 曲沃县| 明溪县| 咸宁市| 潼南县| 宾川县| 改则县| 虞城县| 安阳县| 定陶县| 青田县| 任丘市| 鄂州市| 宿松县| 商都县| 凤翔县| 兴安盟| 静安区| 杂多县| 桂阳县|