最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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快速入門之(十六):文件處理的評論 (共 條)

分享到微博請遵守國家法律
庆云县| 营口市| 贵州省| 金昌市| 信丰县| 温泉县| 泸水县| 方城县| 阿合奇县| 浙江省| 镶黄旗| 铅山县| 孝感市| 长宁县| 赫章县| 元谋县| 丹凤县| 威宁| 山西省| 乌兰浩特市| 布拖县| 巴楚县| 德令哈市| 乌鲁木齐县| 海盐县| 玛曲县| 潼关县| 奉节县| 丽江市| 西平县| 桐城市| 都江堰市| 张掖市| 武隆县| 乡城县| 沂水县| 阿拉善左旗| 宿迁市| 新民市| 顺平县| 潼南县|