Servlet 和其他基於 Servlet 框架的文件上傳機制有些不同 , Servlet 只能接收 enctype爲缺省的 application/x-www-form-urlencoded 類型的數據 , 而現在上傳文件都是通過二進制流的方式 ,將 enctype 改爲了 enctype=”multipart/form-data” .
所以 request.getParameter(“name”); 是取不到表單傳過來的值的 . 對於這個問題 , servlet 給我們提供了一個不是那麼優秀的解決方案 – 使用 smartUpload 上傳文件
smartUpload 下載地址:
http://download.csdn.net/detail/jacxuan/9880854
SmartUpload su = new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
// 上傳限制
su.setMaxFileSize(1024 * 1024 * 10); // 設置大小10MB
su.upload();
//保存到指定路徑
su.save("D:\\");
//獲取消息媒體名稱
filePath=su.getFiles().getFile(0).getFileName();
//取值方式
String sendOption = su.getRequest().getParameter("sendOption");
String chooseStyle = su.getRequest().getParameter("chooseStyle");
String content=su.getRequest().getParameter("content");
使用 smartUpload 上傳文件會比平時上傳耗費更多的時間 , 不推薦使用 .