Java元サーバーでアップロードファイルを受信しました。MultiiprtFile類を使用しません。
3547 ワード
仕事で使うから MultiiprtFileは既存のアップロードファイルコンポーネントと競合しています。
だから他のアップロードファイルを受信する方法を使います。
まずは私が MultiiprtFile類の配置ファイルはコメントが取れます。
注釈が詳細であれば、無駄話は多くないです。
1.解析ファイルのクラスは全部 org.apache.com mmonsのこのカバン
2.前端からフォームを書いてください。actionのurl、enctype=「multiipad/form-data」、postリクエスト
3.inputボタン指定type="file"name="xxx"そして 送信ボタン (ajaxを使って非同期で提出してもいいです。
たとえば:
だから他のアップロードファイルを受信する方法を使います。
まずは私が MultiiprtFile類の配置ファイルはコメントが取れます。
<!-- <bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8" />
<property name="maxUploadSize" value="10485760" />
10M, ,MultipartFile , request !
</bean> -->
既存のファイルの受信方法をこのコードに変更します。注釈が詳細であれば、無駄話は多くないです。
/**
* request
* @warn
* , item.delete();
* @param request http
* @param encoding , null utf-8
* @return FileItem
*/
public List<FileItem> getUploadInputSteam(HttpServletRequest request,String encoding){
if (encoding==null || "".equals(encoding)) {
encoding = "UTF-8";
}
List<FileItem> items = new ArrayList<FileItem>();
//
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding(encoding);
if (!ServletFileUpload.isMultipartContent(request)) {
return items;
}
try {
// ServletFileUpload , List<FileItem>
// FileItem Form
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
// fileitem
if (item.isFormField()) {
// String name = item.getFieldName();
// //
// String value = item.getString(encoding);
// System.out.println(name +"="+value);
}else{
String fileName = item.getName();
if (fileName==null||fileName.trim().equals("")) {
continue;
}
// : , ,
// : c:\a\b\1.txt, , :1.txt
// ,
// fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
items.add(item);
}
}
} catch (Exception e) {
e.printStackTrace();
return items;
}
return items;
}
@RequestMapping("/testUpload")
@ResponseBody
public String testUpload(HttpServletRequest request) throws Exception{
//
List<FileItem> items = getUploadInputSteam(request, "utf-8");
//
FileItem item = items.get(0);
//
String fileName = item.getName();
fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
// , ,
InputStream in = item.getInputStream();
//
in.close();
// ,item
item.delete();
return "success!";
}
注意:1.解析ファイルのクラスは全部 org.apache.com mmonsのこのカバン
2.前端からフォームを書いてください。actionのurl、enctype=「multiipad/form-data」、postリクエスト
3.inputボタン指定type="file"name="xxx"そして 送信ボタン (ajaxを使って非同期で提出してもいいです。
たとえば:
<form action="test/testUpload" method="post"
enctype="multipart/form-data">
<input type="file" name="myFile" value=" ">
<input type="submit" value=" " />
</form>
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。