導航:首頁 > 文件教程 > spring實現文件上傳

spring實現文件上傳

發布時間:2023-09-05 03:51:55

A. 求SpringMVC大文件上傳詳解及實例代碼

SpringMVC的文件上傳非常簡便,首先導入文件上傳依賴的jar:
<!-- 文件上傳所依賴的jar包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

在springMVC-servlet.xml配置文件中配置文件解析器:
<!--1*1024*1024即1M resolveLazily屬性啟用是為了推遲文件解析,以便捕獲文件大小異常 -->
<!--文件上傳解析器-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="resolveLazily" value="true"/>
</bean>
注意解析器的id必須等於multipartResolver,否則上傳會出現異常
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import java.io.File;

@Controller
public class FileController {
/**
* 上傳單個文件操作
* MultipartFile file就是上傳的文件
* @return
*/
@RequestMapping(value = "/upload1.html")
public String fileUpload1(@RequestParam("file") MultipartFile file) {
try {
//將上傳的文件存在E:/upload/下
FileUtils.InputStreamToFile(file.getInputStream(), new File("E:/upload/",
file.getOriginalFilename()));
} catch (Exception e) {
e.printStackTrace();
}
//上傳成功返回原來頁面
return "/file.jsp";
}}

上傳文件時,Controller的方法中參數類型是MultipartFile即可將文件映射到參數上。
頁面:
file.jsp:
<form method="post" action="/upload1.html" enctype="multipart/form-data">
<input type="file" name="file"/>
<button type="submit" >提交</button>
</form>

B. springmvc怎麼將上傳本地文件到文件伺服器

Spring MVC為文件上傳提供了直接的支持,這種支持是通過即插即用的MultipartResolver實現的。Spring使用Jakarta Commons FileUpload 技術實現了一個MultipartResolver實現類:CommonsMultipartResolver。
Spring MVC上下文中默認沒有裝配MultipartResolver,因此默認情況下不能處理文件的上傳工作。如果想要使用Spring的文件上傳功能,需要先在上下文中配置MultipartResolver。
第一步:配置MultipartResolver
使用CommonsMultipartResolver配置一個MultipartResolver解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"

C. springmvc怎麼實現多文件上傳

多文件上傳其實很簡單,和上傳其他相同的參數如checkbox一樣,表單中使用相同的名稱,然後action中將MultipartFile參數類定義為數組就可以。
接下來實現:
1、創建一個上傳多文件的表單:
在CODE上查看代碼片派生到我的代碼片
<body>
<h2>上傳多個文件 實例</h2>
<form action="filesUpload.html" method="post"
enctype="multipart/form-data">
<p>
選擇文件:<input type="file" name="files">
<p>
選擇文件:<input type="file" name="files">
<p>
選擇文件:<input type="file" name="files">
<p>
<input type="submit" value="提交">
</form>
</body>
2、編寫處理表單的action,將原來保存文件的方法單獨寫一個方法出來方便共用:
[java] view plain
print?在CODE上查看代碼片派生到我的代碼片
/***
* 保存文件
* @param file
* @return
*/
private boolean saveFile(MultipartFile file) {
// 判斷文件是否為空
if (!file.isEmpty()) {
try {
// 文件保存路徑
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
+ file.getOriginalFilename();
// 轉存文件
file.transferTo(new File(filePath));
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
3、編寫action:
@RequestMapping("filesUpload")
public String filesUpload(@RequestParam("files") MultipartFile[] files) {
//判斷file數組不能為空並且長度大於0
if(files!=null&&files.length>0){
//循環獲取file數組中得文件
for(int i = 0;i<files.length;i++){
MultipartFile file = files[i];
//保存文件
saveFile(file);
}
}
// 重定向
return "redirect:/list.html";
}

D. Spring Boot | 整合 Minio 實現文件上傳

文章目錄:

MinIO 是一個用 Golang 開發的基於 Apache License v2.0 源協議的磨橘對象存儲服務。

它纖游毀兼容亞馬遜 S3 雲存儲服務介面,適合存儲大容量非結毀備構化的數據,例如圖片、視頻、日誌文件、備份數據和容器/虛擬機鏡像等,單個文件可以是任意大小,從幾kb到最大5T不等。

使用 docker 安裝

說明:

9020 為控制台訪問埠。

創建存儲桶:

設置存儲桶許可權:

MinioProperties.java

MinioConfig.java

FILE_NAME_PATTERN 是上傳文件的命名格式。第一個 {} 放的是上傳時間,格式是 yyyyMMddHHmmss ,精確到秒。第二個 {} 放的是上傳文件的原始文件名。

E. spring文件上傳

萬變不離其宗,要實現文件的上傳需要對應的JAR包:
1、commons-fileupload-1.2.2.jar
2、commons-io-2.0.1.jar

F. SpringBoot超大文件上傳如何實現

不管什麼技術,超大文件上傳(超出一次tcp上限)都是要做分片和合並的,無非是自己做還是找控制項的差別。
另外,springboot是後台接收,前端實現是由前端框架負責,比如vue。
以下是Vue+Springboot實現大文件上傳的二種方式:
1、利用ElementUI的el-upload
優點:
簡單方便,可以實現功能
缺點:
上傳速度太慢,沒有分片單線程上傳1個G的文件即使在區域網也很慢
上傳顯示的進度條不準確,進度已經100%了,但是還需要等很久在服務端才生成完文
2、利用網路的webuploader
優點:
WebUploader是網上比較推薦的方式,分片上傳大文件速度很快。
缺點:
必須依賴 jquery
不能 import 導入,只能在 index.html 里包含。
3. 利用vue-uploader
vue-uploader 是基於vue的uploader組件,預設就是分片上傳。
通過npm安裝,基本流程參考github上的說明即可。
上傳的基本原理就是前端根據文件大小,按塊大小分成很多塊,然後多線程同時上傳多個塊,同時調用服務端的上傳介面,服務端會生成很多小塊小塊的文件。
所有塊都上傳完之後,前端再調用一個服務端的merge介面,服務端把前面收到的所有塊文件按順序組合成最終的文件。

G. 如何使用springmvc實現文件上傳

在現在web應用的開發,springMvc使用頻率是比較廣泛的,現在給大家總結一下springMvc的上傳附件的應用,希望對大家有幫助,廢話不多說,看效果

准備jar包

4.准備上傳代碼


@Controller//spring使用註解管理bean
@RequestMapping("/upload")//向外暴露資源路徑,訪問到該類
public class UploadController {
/**
* 上傳功能
* @return
* @throws IOException
*/
@RequestMapping("/uploadFile")//向外暴露資源路徑,訪問到該方法
public String uploadFile(MultipartFile imgFile,HttpServletRequest req) throws IOException{
if(imgFile != null ){
//獲取文件輸入流
InputStream inputStream = imgFile.getInputStream();
//隨機產生文件名,原因是:避免上傳的附件覆蓋之前的附件
String randName = UUID.randomUUID().toString();//隨機文件名
//獲取文件原名
String originalFilename = imgFile.getOriginalFilename();
//獲取文件後綴名(如:jpgpng...)
String extension = FilenameUtils.getExtension(originalFilename);
//新名字
String newName = randName+"."+extension;
//獲取servletContext
ServletContext servletContext = req.getSession().getServletContext();
//獲取根路徑
String rootPath = servletContext.getRealPath("/");

File file = new File(rootPath,"upload");
//判斷文件是否存在,若不存在,則創建它
if(!file.exists()){
file.mkdirs();
}
//獲取最終輸出的位置
FileOutputStream fileOutputStream = new FileOutputStream(new File(file,newName));
//上傳附件
IOUtils.(inputStream, fileOutputStream);
}
return null;
}
}

閱讀全文

與spring實現文件上傳相關的資料

熱點內容
怎麼樣讓自己的網站不被別人看到 瀏覽:711
編程擴展效果如何 瀏覽:335
榮耀暢玩手環同步qq 瀏覽:475
怎麼向sql中添加資料庫 瀏覽:596
錄歌失敗重啟app什麼意思 瀏覽:522
壓縮文件包怎麼在微信發送 瀏覽:432
mysql資料庫怎麼插入時間值 瀏覽:191
微信視頻不能轉發朋友圈 瀏覽:596
影視後期的app有哪些 瀏覽:956
電子保單數據出錯什麼意思 瀏覽:368
如何以文件下載音樂 瀏覽:438
計算機網路章節練習 瀏覽:999
單片機的外部中斷程序 瀏覽:48
表格批量更名找不到指定文件 瀏覽:869
js的elseif 瀏覽:584
3dmaxvray視頻教程 瀏覽:905
imgtool工具中文版 瀏覽:539
java幫助文件在哪裡 瀏覽:965
win10切換輸入語言 瀏覽:696
haier電視網路用不了怎麼辦 瀏覽:361

友情鏈接