新聞中心
在Spring Boot中,上傳文件到服務(wù)器可以通過(guò)以下步驟實(shí)現(xiàn):

成都創(chuàng)新互聯(lián)公司主營(yíng)寧武網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP軟件開(kāi)發(fā),寧武h5微信平臺(tái)小程序開(kāi)發(fā)搭建,寧武網(wǎng)站營(yíng)銷推廣歡迎寧武等地區(qū)企業(yè)咨詢
1、添加依賴
在項(xiàng)目的pom.xml文件中添加Spring Boot Web和Apache Commons FileUpload的依賴:
org.springframework.boot spring-boot-starter-web commons-fileupload commons-fileupload 1.4
2、創(chuàng)建文件上傳控制器
創(chuàng)建一個(gè)名為FileUploadController的類,并使用@RestController注解標(biāo)記,在這個(gè)類中,定義一個(gè)處理文件上傳的方法,方法的參數(shù)是一個(gè)MultipartFile類型的對(duì)象,表示上傳的文件,在方法內(nèi)部,可以使用MultipartFile對(duì)象的getOriginalFilename()方法獲取文件名,getSize()方法獲取文件大小,以及transferTo()方法將文件保存到服務(wù)器的指定目錄。
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、配置跨域訪問(wèn)
由于瀏覽器的安全限制,需要配置跨域訪問(wèn)才能實(shí)現(xiàn)文件上傳,在項(xiàng)目的主類中添加一個(gè)WebMvcConfigurerAdapter的子類,并重寫(xiě)addCorsMappings方法,允許所有域名進(jìn)行跨域訪問(wèn)。
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、測(cè)試文件上傳功能
啟動(dòng)項(xiàng)目后,可以使用Postman或其他HTTP客戶端工具向/upload接口發(fā)送POST請(qǐng)求,攜帶一個(gè)名為file的文件參數(shù),如果文件上傳成功,服務(wù)器會(huì)返回"文件上傳成功"的消息,如果文件上傳失敗,服務(wù)器會(huì)返回"文件上傳失敗"的消息,可以在指定的服務(wù)器目錄中找到上傳的文件。
相關(guān)問(wèn)題與解答:
1、為什么需要添加Apache Commons FileUpload依賴?
答:因?yàn)镾pring Boot本身不包含處理文件上傳的功能,需要使用第三方庫(kù)來(lái)實(shí)現(xiàn),Apache Commons FileUpload是一個(gè)常用的Java文件上傳庫(kù),可以方便地處理文件上傳。
2、為什么要配置跨域訪問(wèn)?
答:由于瀏覽器的安全限制,不同域名之間的請(qǐng)求默認(rèn)是不允許攜帶資源的,為了實(shí)現(xiàn)文件上傳功能,需要允許其他域名進(jìn)行跨域訪問(wèn),通過(guò)配置跨域訪問(wèn),可以解決這個(gè)問(wèn)題。
網(wǎng)頁(yè)題目:springboot上傳文件到服務(wù)器
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/djhigpd.html


咨詢
建站咨詢
