Java中:圖片/文件的上傳

Java中如何上傳圖片/文件等..?


第一步:更改我們的form表單爲多文件方式

<form id="itemForm" action="${pageContext.request.contextPath }/updateitem.action" method="post" enctype="multipart/form-data">

第二步:配置我們的tomcat的虛擬目錄,所有的文件上傳都到這個目錄來

這裏寫圖片描述

第三步:導入上傳文件必須依賴的兩個jar包

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

第四步:配置我們的圖片上傳的解析器

    <!-- 配置我們的文件上傳解析器,用於限制我們圖片的格式,圖片的大小等 -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 限制每個文件的最大值  爲5M,單位爲字節數組-->
            <property name="maxUploadSize" value="5242880"></property>
        </bean>

第五步:Jsp頁面通過input來選擇文件

<tr>
    <td>商品圖片</td>
    <td>
        <c:if test="${item.pic !=null}">
            <img src="/pic/${item.pic}" width=100 height=100/>
            <br/>
        </c:if>
        <input type="file"  name="pictureFile"/> 
    </td>
</tr>

第六步:Controller後臺接收文件

@RequestMapping("/updateitem.action")
    public String updateItem(Items items,MultipartFile pictureFile) throws IllegalStateException, IOException{
        //打印出來就是abc.png
        String originalFilename = pictureFile.getOriginalFilename();

        //獲取我們uuid的字符串
        String random = UUID.randomUUID().toString();

        //截取我們文件名的後綴
        String substring = originalFilename.substring(originalFilename.lastIndexOf("."));

        //獲取我們文件的最新的名稱
        String newFileName = random+substring;

        //通過File.separator來獲取我們文件上傳的路徑的分隔符,這個會自動的根據服務器的類型來判斷用什麼分隔符
        //如果是linux是/
        //如果是windows \\
        File file = new File("F:\\picupload"+File.separator+newFileName);

        //將我們上傳的文件轉移到目標文件當中去
        pictureFile.transferTo(file);

        System.out.println(originalFilename);
        itemService.updateItem(items);
        return "success";
    }
發佈了63 篇原創文章 · 獲贊 24 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章