Java中實現圖片的上傳


這邊直接存放在c盤的指定目錄,在property中指定了一個目錄

沒有花時間寫用戶操作的上傳頁面,直接用swagger2插件,可以上傳

 

默認圖片大小超過1mb就不可以上傳,可以如下更改

server.port=8899
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=3MB
spring.servlet.multipart.max-request-size=3MB

pic_path="C:\\pic\\"
sava_path=C:\\pic\\
package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;

@RestController
public class UploadController {

    @Value("${sava_path}")
    private String sava_path;


    @RequestMapping(path = "/save_photo", method = {RequestMethod.POST})
    public String addDish(@RequestParam("photos") MultipartFile file, HttpServletRequest request) throws Exception {
        String path = null;// 文件路徑
        double fileSize = file.getSize();
        System.out.println("文件的大小是"+ fileSize);

        byte[] sizebyte=file.getBytes();
        System.out.println("文件的byte大小是"+ sizebyte.toString());



        if (file != null) {// 判斷上傳的文件是否為空
            String type = null;// 文件類型
            String fileName = file.getOriginalFilename();// 文件原名稱
            System.out.println("上傳的文件原名稱:" + fileName);
            // 判斷文件類型
            type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null;
            if (type != null) {// 判斷文件類型是否為空

                if ("GIF".equals(type.toUpperCase()) || "PNG".equals(type.toUpperCase()) || "JPG".equals(type.toUpperCase())) {

                    // 項目在容器中實際發布運行的根路徑
                    String realPath = request.getSession().getServletContext().getRealPath("/");
                    // 自定義的文件名稱
                    String trueFileName = String.valueOf(System.currentTimeMillis()) + "." + type;
                    // 設置存放圖片文件的路徑

                    path = sava_path+fileName;
                    System.out.println("存放圖片文件的路徑:" + path);

                    // 轉存文件到指定的路徑
                    file.transferTo(new File(path));
                    System.out.println("文件成功上傳到指定目錄下");

                    return "文件成功上傳到指定目錄下";
                }

            } else {
                System.out.println("不是我們想要的文件類型,請按要求重新上傳");
                return "不是我們想要的文件類型,請按要求重新上傳";
            }
        } else {
            System.out.println("文件類型為空");
            return "文件類型為空";
        }

        return "已經成功上傳到指定目錄";
    }
}

 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>


    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--Swagger-ui配置-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM