在Spring Boot中,上传文件到服务器可以通过以下步骤实现:
成都创新互联公司主营宁武网站建设的网络公司,主营网站建设方案,重庆APP软件开发,宁武h5微信平台小程序开发搭建,宁武网站营销推广欢迎宁武等地区企业咨询
1、添加依赖
在项目的pom.xml文件中添加Spring Boot Web和Apache Commons FileUpload的依赖:
org.springframework.boot spring-boot-starter-web commons-fileupload commons-fileupload 1.4
2、创建文件上传控制器
创建一个名为FileUploadController的类,并使用@RestController注解标记,在这个类中,定义一个处理文件上传的方法,方法的参数是一个MultipartFile类型的对象,表示上传的文件,在方法内部,可以使用MultipartFile对象的getOriginalFilename()方法获取文件名,getSize()方法获取文件大小,以及transferTo()方法将文件保存到服务器的指定目录。
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; @RestController public class FileUploadController { @PostMapping("/upload") public String upload(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "文件为空"; } String fileName = file.getOriginalFilename(); String filePath = "/your/server/directory/" + fileName; File dest = new File(filePath); try { file.transferTo(dest); return "文件上传成功"; } catch (IOException e) { e.printStackTrace(); } return "文件上传失败"; } }
3、配置跨域访问
由于浏览器的安全限制,需要配置跨域访问才能实现文件上传,在项目的主类中添加一个WebMvcConfigurerAdapter的子类,并重写addCorsMappings方法,允许所有域名进行跨域访问。
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") .maxAge(168000) .allowedHeaders("*"); } }
4、测试文件上传功能
启动项目后,可以使用Postman或其他HTTP客户端工具向/upload接口发送POST请求,携带一个名为file的文件参数,如果文件上传成功,服务器会返回"文件上传成功"的消息,如果文件上传失败,服务器会返回"文件上传失败"的消息,可以在指定的服务器目录中找到上传的文件。
相关问题与解答:
1、为什么需要添加Apache Commons FileUpload依赖?
答:因为Spring Boot本身不包含处理文件上传的功能,需要使用第三方库来实现,Apache Commons FileUpload是一个常用的Java文件上传库,可以方便地处理文件上传。
2、为什么要配置跨域访问?
答:由于浏览器的安全限制,不同域名之间的请求默认是不允许携带资源的,为了实现文件上传功能,需要允许其他域名进行跨域访问,通过配置跨域访问,可以解决这个问题。
分享题目:springboot上传文件到服务器
URL链接:http://www.shufengxianlan.com/qtweb/news15/540865.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联