Springmvc環境でajaxfileuploadを使用する.jsファイルアップロード
7756 ワード
controller:
Springmvcプロファイル:
フロント:
もちろん、以上の構成コード以外はajaxfileuploadを参照する.js.もし問題があれば、伝言を残してください.
/* #region */
@RequestMapping(produces = "text/html;charset=UTF-8", value = "/unisi-plugins-core-files/component-async/upload")
@ResponseBody
public String upload(@RequestParam("uname") String uname, @RequestParam MultipartFile[] image_file,
HttpServletRequest request, HttpServletResponse response) throws IOException {
//
com.unisi.framework.core.utilities.ConsoleHelper.printOut(" ");
// Tomcat , \\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\
// commons.io.FileUtils , /upload ,
String realPath = request.getSession().getServletContext().getRealPath("/upload");
//
response.setContentType("text/plain; charset=UTF-8");
// PrintWriter
PrintWriter out = response.getWriter();
// ( )
String originalFilename = null;
// , MultipartFile , @RequestParam
// , MultipartFile[] , @RequestParam
// , <input
// type="file"/> name image_file, image_file
for (MultipartFile myfile : image_file) {
if (myfile.isEmpty()) {
out.print("1` ");
out.flush();
return null;
} else {
originalFilename = myfile.getOriginalFilename();
com.unisi.framework.core.utilities.ConsoleHelper.printOut(" : " + originalFilename);
com.unisi.framework.core.utilities.ConsoleHelper.printOut(" : " + myfile.getName());
com.unisi.framework.core.utilities.ConsoleHelper.printOut(" : " + myfile.getSize());
com.unisi.framework.core.utilities.ConsoleHelper.printOut(" : " + myfile.getContentType());
try {
// IO , FileUtils.copyInputStreamToFile() IO
// Spring MultipartFile.transferTo(File
// dest)
FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(realPath, originalFilename));
} catch (IOException e) {
com.unisi.framework.core.utilities.ConsoleHelper
.printOut(" [" + originalFilename + "] , ");
e.printStackTrace();
out.print("1` , !");
out.flush();
return null;
}
}
}
// Windows [D:\Develop\apache-tomcat-6.0.36\webapps\AjaxFileUpload\\upload\ .jpg]
// System.out.println(realPath + "\\" + originalFilename);
// Windows [/AjaxFileUpload/upload/ .jpg]
// System.out.println(request.getContextPath() + "/upload/" +
// originalFilename);
// [realPath + "\\" + originalFilename]
// Windows <img src="file:///D:/aa.jpg"> firefox , <img
// src="D:/aa.jpg">firefox
out.print("0`" + request.getContextPath() + "/upload/" + originalFilename);
out.flush();
return null;
}
/* #endregion */
Springmvcプロファイル:
<!-- region upload config -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760" />
</bean>
<!-- endregion spring -->
フロント:
<script type="text/javascript">
function ajaxFileUpload(){
//
$.ajaxFileUpload({
// ( , )
url:' ?uname= ',
secureuri:false, // , false
fileElementId:'image_file', // id
dataType:'text', // , json xml
success:function(data, status){ //
alert(111);
},
error:function(data, status, e){ //
alert(222);
}
});
}
</script>
<input type="file" name="image_file" id="image_file" />
<input value="Upload" type="button" id="upload-form" name="upload-form" onclick="ajaxFileUpload()"/>
もちろん、以上の構成コード以外はajaxfileuploadを参照する.js.もし問題があれば、伝言を残してください.