SpringMVC使用FileUpload進行檔案上傳,springmvc檔案上傳

來源:互聯網
上載者:User

SpringMVC使用FileUpload進行檔案上傳,springmvc檔案上傳

匯入FileUpload和common-io的Jar包

注意:1、Struts2需要使用其他方法:struts2過濾時,會改變reqeust的類型,由HttpServletRequest變成MultiPartRequestWrapper

1、Test.jsp:

<form action="<%=basePath%>self/testFileUpload.do" method="post" enctype="multipart/form-data">    <input type="text" name="num">    <input name="img1" type="file" accept="image/gif,image/jpg,image/png,image/jpeg"/>    <input name="img2" type="file" accept="image/gif,image/jpg,image/png,image/jpeg"/>    <input type="submit" name="test">    <input type="reset" name="test1">    </form>

2、controller:

@RequestMapping(value="/testFileUpload")public void  testFileUpload(HttpServletRequest request,HttpServletResponse response) throws Exception{String num = "";String img1 = "";String img2 = "";String fileName = "";try {String t = request.getCharacterEncoding();boolean isMultipart = ServletFileUpload.isMultipartContent(request);//判斷是否是表單檔案類型if(isMultipart){DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);upload.setHeaderEncoding(request.getCharacterEncoding());//這裡很重要啊 解決linux環境下上傳檔案名稱亂碼的問題//upload.setFileSizeMax(3*1024*1024);//3MList items = upload.parseRequest(request);if(items.size() == 0){System.out.println("無資料");}Iterator<Object> formItem = items.iterator();while(formItem.hasNext()){FileItem item = (FileItem) formItem.next();//如果是表單元素if(item.isFormField()){if (item.getFieldName().equals("num")) {num = item.getString(request.getCharacterEncoding()).trim();}}//如果不是表單元素if(!item.isFormField()){String name = item.getName();String type = item.getContentType();long sizeInBytes = item.getSize();try {String fullName = item.getName().trim();if(fullName != ""){fileName = System.currentTimeMillis() + fullName.substring(fullName.indexOf("."));if(item.getFieldName().equals("img1")){fileName = "img1-" + System.currentTimeMillis() + fullName.substring(fullName.indexOf("."));}if(item.getFieldName().equals("img2")){fileName = "img2-" + System.currentTimeMillis() + fullName.substring(fullName.indexOf("."));}String tomcatRoot = FileOperator.getRootPath();String path = tomcatRoot;if(FileOperator.FileUploadEx(path, fileName, item.getSize(), item.getInputStream())){if(item.getFieldName().equals("img1")){System.out.println("testimg1");}if(item.getFieldName().equals("img2")){System.out.println("testimg2");}}}} catch (Exception e) {e.printStackTrace();}}}}else{System.out.println("非multipart/form-data提交方式");}} catch (Exception e) {e.printStackTrace();}}



SpringMVC使用commons fileupload 上傳檔案,parseRequest(request)得到的集合為空白,急等指點

既然你已經用了Spring MVC,就沒有必要自己寫上傳的代碼了,這樣做
下一個這樣的方法,把MultipartFile傳進去
public String upload(@RequestParam(value = "image") MultipartFile image)
然後就可以這樣做了
image.transferTo(new File("想要儲存到哪裡"));

image還有其他的方法,自己看一下就可以了

XML配置一個bean

<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="utf-8" />
</bean>
 
一個spring mvc實現 檔案上傳執行個體,有例子的給一個,,最好都有注釋

用的Spring嗎?如果不是隨便找一個上傳控制項如COS什麼的很簡單就可以作到了,你百度一下很多的...

以下我們的系統用的Html5的多檔案上傳



 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.