五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Spring Boot快速入門之(十六):文件處理

2020-09-03 15:22 作者:信碼由韁  | 我要投稿

【注】本文譯自: https://www.tutorialspoint.com/spring_boot/spring_boot_file_handling.htm

? ? 本文學習如何使用 web 服務進行文件上傳和下載。

文件上傳

? ?上傳一個文件,可以使用?MultipartFile?作為請求參數(shù),并且這個 API 應當消費?Multi-Part 表單數(shù)據(jù)值。示例代碼如下:

@RequestMapping(value?=?"/upload",?method?=?RequestMethod.POST,?consumes?=?MediaType.MULTIPART_FORM_DATA_VALUE)

public?String?fileUpload(@RequestParam("file")?MultipartFile?file)?{

???return?null;

}

? ?完整代碼如下:

package?com.tutorialspoint.demo.controller;

import?java.io.File;

import?java.io.FileOutputStream;

import?java.io.IOException;

import?org.springframework.http.MediaType;

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;

@RestController

public?class?FileUploadController?{

???@RequestMapping(value?=?"/upload",?method?=?RequestMethod.POST,?

??????consumes?=?MediaType.MULTIPART_FORM_DATA_VALUE)

???

???public?String?fileUpload(@RequestParam("file")?MultipartFile?file)?throws?IOException?{

??????File?convertFile?=?new?File("/var/tmp/"+file.getOriginalFilename());

??????convertFile.createNewFile();

??????FileOutputStream?fout?=?new?FileOutputStream(convertFile);

??????fout.write(file.getBytes());

??????fout.close();

??????return?"File?is?upload?successfully";

???}

}

文件下載

? ?文件下載應當使用 InputStreamResource。我們要在響應中設置 HttpHeader?Content-Disposition,并且要指定應用的響應媒體類型(Media Type)。

注意?以下面的例子中,在應用運行時指定路徑上的文件應當是可用的。

@RequestMapping(value?=?"/download",?method?=?RequestMethod.GET)?

public?ResponseEntity<Object>?downloadFile()?throws?IOException??{

???String?filename?=?"/var/tmp/mysql.png";

???File?file?=?new?File(filename);

???InputStreamResource?resource?=?new?InputStreamResource(new?FileInputStream(file));

???HttpHeaders?headers?=?new?HttpHeaders();

??????

???headers.add("Content-Disposition",?String.format("attachment;?filename=\"%s\"",?file.getName()));

???headers.add("Cache-Control",?"no-cache,?no-store,?must-revalidate");

???headers.add("Pragma",?"no-cache");

???headers.add("Expires",?"0");

??????

???ResponseEntity<Object>?

???responseEntity?=?ResponseEntity.ok().headers(headers).contentLength(file.length()).contentType(

??????MediaType.parseMediaType("application/txt")).body(resource);

??????

???return?responseEntity;

}

? ?完整代碼如下:

package?com.tutorialspoint.demo.controller;

import?java.io.File;

import?java.io.FileInputStream;

import?java.io.IOException;

import?org.springframework.core.io.InputStreamResource;

import?org.springframework.http.HttpHeaders;

import?org.springframework.http.MediaType;

import?org.springframework.http.ResponseEntity;

import?org.springframework.web.bind.annotation.RequestMapping;

import?org.springframework.web.bind.annotation.RequestMethod;

import?org.springframework.web.bind.annotation.RestController;

@RestController

public?class?FileDownloadController?{

???@RequestMapping(value?=?"/download",?method?=?RequestMethod.GET)?

???public?ResponseEntity<Object>?downloadFile()?throws?IOException??{

??????String?filename?=?"/var/tmp/mysql.png";

??????File?file?=?new?File(filename);

??????InputStreamResource?resource?=?new?InputStreamResource(new?FileInputStream(file));

??????HttpHeaders?headers?=?new?HttpHeaders();

??????

??????headers.add("Content-Disposition",?String.format("attachment;?filename=\"%s\"",?file.getName()));

??????headers.add("Cache-Control",?"no-cache,?no-store,?must-revalidate");

??????headers.add("Pragma",?"no-cache");

??????headers.add("Expires",?"0");

??????

??????ResponseEntity<Object>?

??????responseEntity?=?ResponseEntity.ok().headers(headers).contentLength(

?????????file.length()).contentType(MediaType.parseMediaType("application/txt")).body(resource);

??????

??????return?responseEntity;

???}

}

? ?主 Spring Boot 應用類如下:

package?com.tutorialspoint.demo;

import?org.springframework.boot.SpringApplication;

import?org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public?class?DemoApplication?{

???public?static?void?main(String[]?args)?{

??????SpringApplication.run(DemoApplication.class,?args);

???}

}

? ?Maven build – 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>

???<groupId>com.tutorialspoint</groupId>

???<artifactId>demo</artifactId>

???<version>0.0.1-SNAPSHOT</version>

???<packaging>jar</packaging>

???<name>demo</name>

???<description>Demo?project?for?Spring?Boot</description>

???<parent>

??????<groupId>org.springframework.boot</groupId>

??????<artifactId>spring-boot-starter-parent</artifactId>

??????<version>1.5.8.RELEASE</version>

??????<relativePath/>?

???</parent>

???<properties>

??????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

??????<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

??????<java.version>1.8</java.version>

???</properties>

???<dependencies>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-web</artifactId>

??????</dependency>

??????<dependency>

?????????<groupId>org.springframework.boot</groupId>

?????????<artifactId>spring-boot-starter-test</artifactId>

?????????<scope>test</scope>

??????</dependency>

???</dependencies>

???<build>

??????<plugins>

?????????<plugin>

????????????<groupId>org.springframework.boot</groupId>

????????????<artifactId>spring-boot-maven-plugin</artifactId>

?????????</plugin>

??????</plugins>

???</build>

</project>

? ?Gradle Build – build.gradle 代碼如下:

buildscript?{

???ext?{

??????springBootVersion?=?'1.5.8.RELEASE'

???}

???repositories?{

??????mavenCentral()

???}

???dependencies?{

??????classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")

???}

}

apply?plugin:?'java'

apply?plugin:?'eclipse'

apply?plugin:?'org.springframework.boot'

group?=?'com.tutorialspoint'

version?=?'0.0.1-SNAPSHOT'

sourceCompatibility?=?1.8

repositories?{

???mavenCentral()

}

dependencies?{

???compile('org.springframework.boot:spring-boot-starter-web')

???testCompile('org.springframework.boot:spring-boot-starter-test')

}

? ?現(xiàn)在你可以使用 Maven 或 Gradle 命令創(chuàng)建可執(zhí)行?executable JAR 文件并運行 Spring Boot 應用了:

? ?Maven 命令如下:

mvn clean install

? ?在 “BUILD SUCCESS” 之后,你可以在 target 目錄下找到 JAR 文件。

? ?Gradle 可以使用以下命令:

gradle clean build

? ?在 “BUILD SUCCESSFUL” 之后,你可以在?build/libs 目錄下找到?JAR 文件。

? ?現(xiàn)在,使用以下命令運行 JAR 文件:

java –jar <JARFILE>

? ?應用將在?Tomcat 8080 端口啟動,如下 所示:

? ?現(xiàn)在在 POSTMAN 應用中輸入以下 URL’s in POSTMAN,可以看到下圖所示的輸出:

? ?文件上傳:?http://localhost:8080/upload

? ?文件下載:?http://localhost:8080/download



Spring Boot快速入門之(十六):文件處理的評論 (共 條)

分享到微博請遵守國家法律
城步| 峨眉山市| 湖南省| 吉安市| 平邑县| 同江市| 社会| 中方县| 塔河县| 宜良县| 绩溪县| 尼勒克县| 顺义区| 沭阳县| 湄潭县| 定兴县| 徐水县| 德阳市| 扶绥县| 分宜县| 新沂市| 美姑县| 桂林市| 格尔木市| 二手房| 诸暨市| 同江市| 花莲市| 阜宁县| 鄂温| 剑川县| 岚皋县| 山阳县| 阿坝县| 甘孜县| 始兴县| 肥城市| 镇沅| 府谷县| 舟曲县| 疏勒县|