生活随笔
收集整理的這篇文章主要介紹了
java 简单实现上传 | commons-fileupload
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用servlet來實現
配置pom.xml <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3</version></dependency> servlet protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//創建一個文件處理工廠FileItemFactory factory= new DiskFileItemFactory();//創建一個存放臨時中轉的倉庫ServletContext servletContext = this.getServletConfig().getServletContext();File repository = (File) servletContext.getAttribute("javax.servlet.context.temdir");((DiskFileItemFactory) factory).setRepository(repository);//創建一個處理上傳的處理器ServletFileUpload upload = new ServletFileUpload(factory);try {//獲取從表單提交上來的數據,從表單上傳的數據會自動被分割,比如一個input:text,input:file,就會被分成兩個itemList items = upload.parseRequest(req);Iterator iter = items.iterator();while (iter.hasNext()) {FileItem item = iter.next();//檢查是否是文件if(item.isFormField()) {//如果不是文件dString name = item.getFieldName();String value =item.getString();System.out.println(name+":"+value);}else {//如果是文件String fieldName = item.getFieldName();//這個fileName是上傳文件名String fileName = item.getName();System.out.println(fieldName+":"+fileName);//新建一個文件,用于存儲上傳的文件File uploadFile = new File("D:\\",fileName);item.write(uploadFile);}}} catch (FileUploadException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}
在web.xml中配置好servlet前端頁面 <form action="/swfupload/fupload" enctype="multipart/form-data" method="post"></form> ?在這里,enctype的類型一定要是multipart/form-data,method要是post使用spring mvc controller來實現
大部分都是和上面的一樣,而配置spring mvc可以在前面的博客找到配置controller @RequestMapping(value="/upload.do",method=RequestMethod.POST)public void upload(HttpServletRequest request, HttpServletResponse response) {//定義一個文件上傳工廠,配置一些上傳限制DiskFileItemFactory factory = new DiskFileItemFactory();factory.setRepository(new File("D:\\"));//上傳實現方法ServletFileUpload upload = new ServletFileUpload(factory);try {//獲取表彰提交List items = upload.parseRequest(request);Iterator iter = items.iterator();while (iter.hasNext()) {FileItem item = iter.next();if (item.isFormField()) {//當不是文件的時候String filedName = item.getFieldName();String value = item.getString();System.out.println(filedName + ":" + value);} else {//是文件的時候String fileName = item.getName();String path = ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/");System.out.println(path);//新建一個文件,并以上傳文件名為文件名File uploadFile = new File(path,fileName);//保存上傳文件item.write(uploadFile);}}} catch (FileUploadException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}
@RequestMapping指定了訪問的路徑和訪問的類型前臺頁面 <form action="/swfupload/upload.do" enctype="multipart/form-data" method="post"> 其實swfupload是項目名
java 和 swfupload的結合
其實swfupload只是負責前臺的各種邏輯,而java后臺的處理依然是沿用普通的上傳代碼,也就是java后臺處理的代碼和上面的是一個樣,只是前臺代碼使用swfupload寫,而代碼在官方網站上的demo寫得非常全了
轉載于:https://www.cnblogs.com/popping57/p/3258956.html
總結
以上是生活随笔為你收集整理的java 简单实现上传 | commons-fileupload的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。