標籤:java 多檔案上傳 非控制項 spring springmvc
最近項目用到的,實現多檔案以及一些資訊上傳,
以及後台接收及讀取用到了spring及springmvc相關架構。
不多說廢話,直接上例子(這有關鍵代碼)
首先,前台頁面
<form action="/uploader/upload/uploadFiles" method="post" enctype="multipart/form-data"><input type="file"size="30" name="uploadify"multiple="true"id="files" /> <button id="uploadFiles">上傳檔案</button> <input type="hidden" id="username"name="username" /> <input type="hidden" id="directory" name="directory"/></form>
首先解釋下action中的地址為我後台接受檔案的地址,
因為上傳檔案,所以enctype="multipart/form-data"是必須的
同時選擇多個檔案上傳,不使用各種控制項的話,把multiple設定為"true"即可。
另外,上傳檔案input中的name屬性很重要,後台擷取檔案會用到的。
下面上後台代碼,username和directory可以在參數中直接擷取
@RequestMapping(value = "/uploadFiles", method = RequestMethod.POST, consumes = "multipart/*") publicvoid uploadFilesFromHtml(@RequestParam(defaultValue = "") String username,@RequestParam(defaultValue = "") String directory,MultipartHttpServletRequest request) throws FileUploadException,IOException { MultiValueMap<String,MultipartFile> map = request.getMultiFileMap();// 為了擷取檔案,這個類是必須的 List<MultipartFile> list = map.get("uploadify");// 擷取到檔案的列表 Stringpath= getFilePath(username,directory); //忽略掉,為檔案最終上傳的地址 List<String>filenameList= newArrayList<>();// // 將圖片進行儲存 for (MultipartFile mFile : list) { StringoriginalFileName= mFile.getOriginalFilename();//擷取檔案名稱 filenameList.add(originalFileName); byte[] bytes = mFile.getBytes();//擷取位元組數組 StringfilePath= path+ File.separator+ originalFileName; FileOutputStreamfos= newFileOutputStream(newFile(filePath)); //寫出到檔案 fos.write(bytes); fos.flush(); fos.close(); } }
本文出自 “楓葉還沒紅” 部落格,請務必保留此出處http://itlearninger.blog.51cto.com/12572641/1913130
多檔案上傳以及java後台接受