一、首先添加springMVC文件上傳的jarjavascript
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>前端
<!-- 上傳文件攔截,設置最大上傳文件大小 10M=10*1024*1024(B)=10485760 bytes -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760" />
</bean>java
三、Controller代碼web
/*
* 圖片命名格式
*/
private static final String DEFAULT_SUB_FOLDER_FORMAT_AUTO = "yyyyMMddHHmmss";spring
/*
* 放置上傳圖片的文件夾!
*/
private static final String UPLOAD_PATH="/upload/img/";app
@RequestMapping("/uploadImg")
public void uplodaImg(@RequestParam("upload")MultipartFile file,HttpServletRequest request, HttpServletResponse response, @RequestParam("CKEditorFuncNum")String CKEditorFuncNum)
throws IllegalStateException, IOException {jsp
PrintWriter out =response.getWriter();
String fileName=file.getOriginalFilename();
String uploadContentType =file.getContentType();
String expandedName ="";
if (uploadContentType.equals("image/pjpeg")
|| uploadContentType.equals("image/jpeg")) {
// IE6上傳jpg圖片的headimageContentType是image/pjpeg,而IE9以及火狐上傳的jpg圖片是image/jpeg
expandedName = ".jpg";
} else if (uploadContentType.equals("image/png")
|| uploadContentType.equals("image/x-png")) {
// IE6上傳的png圖片的headimageContentType是"image/x-png"
expandedName = ".png";
} else if (uploadContentType.equals("image/gif")) {
expandedName = ".gif";
} else if (uploadContentType.equals("image/bmp")) {
expandedName = ".bmp";
} else {
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
+ ",''," + "'文件格式不正確(必須爲.jpg/.gif/.bmp/.png文件)');");
out.println("</script>");
return ;
}
if (file.getSize()> 600 * 1024) {
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
+ ",''," + "'文件大小不得大於600k');");
out.println("</script>");
return ;
}
DateFormat df = new SimpleDateFormat(DEFAULT_SUB_FOLDER_FORMAT_AUTO);
fileName = df.format(new Date())+expandedName;maven
/** 構建上傳圖片的保存目錄* */
String saveDir = UPLOAD_PATH+ fileName; //至關於("/upload/img/"+fileName)
/** 獲得文件保存目錄的真實路徑* */spa
/**必定要注意這裏,這裏的路徑就是上傳圖片所在的項目根路徑,在編譯後的文件夾裏面,前端能夠根據wepapp下的路徑直接取便可。orm
*不肯定的話,就打印出這句話,而後看看下面的配置的前端是怎麼取到的
*/
String imgRealPathDir = request.getSession().getServletContext().getRealPath(saveDir);
File targetFile = new File(imgRealPathDir);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
file.transferTo(targetFile);//注意,項目常常會在這裏出現錯誤,錯誤的緣由通常都是配的上傳路徑或者前端獲取的路徑不對,必定要注意這裏
// 返回"圖像"選項卡並顯示圖片 request.getContextPath()爲web項目名,只適合jsp頁面使用,不適用於後臺Java代碼
out.println("<script type=\"text/javascript\">");
out.println("window.parent.CKEDITOR.tools.callFunction(" + CKEditorFuncNum
+ ",'" + request.getContextPath()+"/upload/img/" + fileName + "','')");
out.println("</script>");
return ; }