1. 程式人生 > >SpringMVC中的文件上傳

SpringMVC中的文件上傳

.get 界面 org 存在 編碼格式 docx 後綴 cti 時間

SpringMVC中的文件上傳

步驟:

1.獲取服務器下某個文件的絕對路徑

2.1判斷此文件夾是否存在不存在則創建文件夾(可以建立多層的mkdirs()方法)

3.判斷上傳文件的姓名

4.判斷是否上傳文件

5.獲取上傳文件的後綴名,例如jpg,docx

6.新建新的上傳文件的文件名

7.完成上傳

Html處代碼(直接上傳,不對文件進行判斷):

<body>

<h2>文件上傳</h2>

<form action="upload01" method="post" enctype="multipart/form-data">

上傳者姓名:<input type="text" name="user_name"><br>

文件:<input type="file" name="myfile">

<button>上傳</button>

</form>

</body>

Controller中上傳部分代碼:

@postMapping("/upload01")

public String text(){

//1.獲取服務器下某個文件的絕對路徑

String path=request.getServletContext().getRealPath("/attr/");

//2.文件夾的建立2.1判斷此文件夾是否存在

File folder=new File(path);

if(!folder.exists()){//2.1判斷此文件夾是否存在

folder.mkdirs();//2.1不存在則創建文件夾(可以建立多層的mkdirs()方法)

}

//3.判斷上傳文件的姓名

String filename=myfile.getOriginalFilename();

//4.判斷是否上傳文件

if(!filename.isEmpty()){

//5.獲取上傳文件的後綴名,例如jpg,docx

String ext=FilenameUtils.getExtension(filename);

//6.新建新的上傳文件的文件名

String newFile=new Date().getTime()+"_"+new Random().nextInt(10000)+"."+ext;

//(上面是時間戳方式)

//String newFile=UUID.randomUUID().toString()+"."+ext

//7.完成上傳

myfile.transferTo(new File(path+File.separator+newFile));

}else{

}

return "jsp/result";//跳轉到上傳文件成功界面

}

SpringMVC中需要的配置信息

<!-- 文件上傳的解析器,只有id是固定值 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 編碼格式 -->
<property name="maxUploadSize" value="20971520" />
<!-- 上傳文件大小 -->
<property name="maxInMemorySize" value="2048" />
<!-- 上傳文件緩存 -->
<property name="resolveLazily" value="true" />
<!-- 上傳文件延時,提供上傳效率 -->
</bean>

---------------end

SpringMVC中的文件上傳