Spring Boot搭建文件上传服务的方法

网友投稿 483 2023-03-15


Spring Boot搭建文件上传服务的方法

本文实例为大家分享了Spring Boot搭建文件上传服务的具体代码,供大家参考,具体内容如下

一、服务端

pom.xml

xmlns:xsi="http://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">

4.0.0

org.springframework.boot

spring-boot-starter-parent

1.3.3.RELEASE

com.test.spring

spring-boot

1.0.0

jar

spring-boot

http://maven.apache.org

UTF-8

1.8

1.8

org.springframework.boot

spring-boot-starter-web

commons-io

commons-io

2.4

xmlns:xsi="http://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">

4.0.0

org.springframework.boot

spring-boot-starter-parent

1.3.3.RELEASE

com.test.spring

spring-boot

1.0.0

jar

spring-boot

http://maven.apache.org

UTF-8

1.8

1.8

org.springframework.boot

spring-boot-starter-web

commons-io

commons-io

2.4

package com.test.spring;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import javax.servlet.MultipartConfigElement;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.Part;

import org.apache.commons.io.IOUtils;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import org.springframework.boot.context.embedded.MultipartConfigFactory;

import org.springframework.context.annotation.Bean;

import org.springframework.stereotype.Controller;

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

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

import org.springframework.web.bind.annotation.ResponseBody;

@Controller

@EnableAutoConfiguration

public class FileUploadController

{

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

@ResponseBody

public String upload(HttpServletRequest request) throws Exception

{

Part part = request.getPart("uploadfile");

InputStream input = part.getInputStream();

OutputStream output = new FileOutputStream("d:/tmp/" + part.getSubmittedFileName());

IOUtils.copy(input, output);

output.close();

input.close();

return "OK";

}

@Bean

MultipartConfigElement createMultipartConfigElement()

{

MultipartConfigFactory mcf = new MultipartConfigFactory();

/**

* 设置最大上传文件的大小,默认是10MB

*/

mcf.setMaxFileSize("50MB");

return mcf.createMultipartConfig();

}

public static void main(String[] args) throws Exception {

SpringApplication.run(FileUploadController.class, args);

}

}

注意:spring-boot-starter-web 1.3.3.RELEASE 依赖的servlet是3.1

二、客户端

客户端使用httpclient调用

先配置maven依赖

org.apache.httpcomponents

httpclient

4.5.2

org.apache.httpcomponents

4.5.2

测试代码

package com.test.upload;

import java.io.File;

http://

import org.apache.http.HttpEntity;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.mime.MultipartEntityBuilder;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

public class HttpUpload

{

public static void main(String[] args)throws Exception

{

String url = "http://127.0.0.1:8080/upload";

CloseableHttpClient client = HttpClients.createDefault();

HttpPost httppost = new HttpPost(url);

MultipartEntityBuilder builder = MultipartEntityBuilder.create();

builder.addBinaryBody("uploadfile", new File("D:/develop/apache-karaf-3.0.4.zip"));

HttpEntity reqEntity = builder.build();

httppost.setEntity(reqEntity);

CloseableHttpResponse resp = client.execute(httppost);

String str = EntityUtils.toString(resp.getEntity());

System.out.println(str);

resp.close();

client.close();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IE11下使用canvas.toDataURL报SecurityError错误的解决方法
下一篇:详解Spring Cloud Zuul重试机制探秘
相关文章

 发表评论

暂时没有评论,来抢沙发吧~