日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java spring上传_SpringMVC上传文件的三种方式

發布時間:2025/4/5 javascript 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java spring上传_SpringMVC上传文件的三种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

直接上代碼吧,大伙一看便知

前臺:

pageEncoding="utf-8"%>

Insert title here

采用流的方式上傳文件

采用multipart提供的file.transfer方法上傳文件

使用spring mvc提供的類的方法上傳文件

配置:

后臺:

方式一:

/*

* 通過流的方式上傳文件

* @RequestParam("file") 將name=file控件得到的文件封裝成CommonsMultipartFile 對象

*/

@RequestMapping("fileUpload")

public String fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException {

//用來檢測程序運行時間

long startTime=System.currentTimeMillis();

System.out.println("fileName:"+file.getOriginalFilename());

try {

//獲取輸出流

OutputStream os=new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename());

//獲取輸入流 CommonsMultipartFile 中可以直接得到文件的流

InputStream is=file.getInputStream();

int temp;

//一個一個字節的讀取并寫入

while((temp=is.read())!=(-1))

{

os.write(temp);

}

os.flush();

os.close();

is.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

long endTime=System.currentTimeMillis();

System.out.println("方法一的運行時間:"+String.valueOf(endTime-startTime)+"ms");

return "/success";

}

方式二:

/*

* 采用file.Transto 來保存上傳的文件

*/

@RequestMapping("fileUpload2")

public String fileUpload2(@RequestParam("file") CommonsMultipartFile file) throws IOException {

long startTime=System.currentTimeMillis();

System.out.println("fileName:"+file.getOriginalFilename());

String path="E:/"+new Date().getTime()+file.getOriginalFilename();

File newFile=new File(path);

//通過CommonsMultipartFile的方法直接寫文件(注意這個時候)

file.transferTo(newFile);

long endTime=System.currentTimeMillis();

System.out.println("方法二的運行時間:"+String.valueOf(endTime-startTime)+"ms");

return "/success";

}

方式三:

/*

*采用spring提供的上傳文件的方法

*/

@RequestMapping("springUpload")

public String springUpload(HttpServletRequest request) throws IllegalStateException, IOException

{

long startTime=System.currentTimeMillis();

//將當前上下文初始化給 CommonsMutipartResolver (多部分解析器)

CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(

request.getSession().getServletContext());

//檢查form中是否有enctype="multipart/form-data"

if(multipartResolver.isMultipart(request))

{

//將request變成多部分request

MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;

//獲取multiRequest 中所有的文件名

Iterator iter=multiRequest.getFileNames();

while(iter.hasNext())

{

//一次遍歷所有文件

MultipartFile file=multiRequest.getFile(iter.next().toString());

if(file!=null)

{

String path="E:/springUpload"+file.getOriginalFilename();

//上傳

file.transferTo(new File(path));

}

}

}

long endTime=System.currentTimeMillis();

System.out.println("方法三的運行時間:"+String.valueOf(endTime-startTime)+"ms");

return "/success";

}

我們看看測試上傳的時間:

第一次我用一個4M的文件:

fileName:test.rar

方法一的運行時間:14712ms

fileName:test.rar

方法二的運行時間:5ms

方法三的運行時間:4ms

第二次:我用一個50M的文件

方式一進度很慢,估計得要個5分鐘

方法二的運行時間:67ms

方法三的運行時間:80ms

從測試結果我們可以看到:用springMVC自帶的上傳文件的方法要快的多!

對于測試二的結果:可能是方法三得挨個搜索,所以要慢點。不過一般情況下我們是方法三,因為他能提供給我們更多的方法

總結

以上是生活随笔為你收集整理的java spring上传_SpringMVC上传文件的三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。