问题描述
<form action="/email/save.do" method="post" enctype="multipart/form-data">
<div class="form-group"align="right">
<label for="subject" >: subject</label>
<input type="text" class="form-control" name="subject" id="subject">
</div>
<div class="form-group" align="right">
<label for="uploadFile">: upload file </label>
<input type="file" class="form-control " name="uploadFile" id="uploadFile">
</div>
<button type="submit" class="btn btn-success btn-block" name="submit">save
</button>
</form>
正如你所看到的,我有一个输入是文件类型,还有一些其他输入,它们的类型不是文件。
UploaderUtiles{
private UploadBean upBean;
private MultipartFormDataRequest mrequest;
private String fileName;
private String fileSize;
private String infilename;
public UploaderUtils(HttpServletRequest request,String param_name,String store_address,long max_byte_size,boolean over_write_status)
throws Exception {
this.infilename = param_name;
this.upBean = new UploadBean();
upBean.setFolderstore(store_address);
upBean.setFilesizelimit(max_byte_size);
upBean.setoverwrite(over_write_status);
if (MultipartFormDataRequest.isMultipartFormData(request)) {
mrequest = new MultipartFormDataRequest(request);
Hashtable files = mrequest.getFiles();
if ((files != null) && (!files.isEmpty())) {
UploadFile file = (UploadFile) files.get(param_name);
this.fileName = file.getFileName();
this.fileSize = file.getFileSize() + "";
}
}
}
public boolean save() throws Exception {
try {
upBean.store(mrequest,infilename);
return true;
} catch (Exception e) {
return false;
}
}
public String getFileName() {
return fileName;
}
public String getFileSize() {
return fileSize;}
}
这是我用于此表单的 Servlet :
@WebServlet("/email/save.do")
public class EmailSave extends HttpServlet {
@Override
protected void service(HttpServletRequest req,HttpServletResponse resp) throws servletexception,IOException {
Email email = new Email();
try {
UploaderUtils uploader = new UploaderUtils(req,"uploadFile","C:\\ROOT\\UPLOAD",10000000l,false);
uploader.save();
email.setFileAddress("C:\\ROOT\\UPLOAD\\" + uploader.getFileName());
} catch (Exception e) {
e.printstacktrace();
}
email.setDateTime(new Timestamp(System.currentTimeMillis()));
email.setSubject(req.getParameter("subject"));
try {
EmailService.getInstance().save(email);
} catch (Exception e) {
e.printstacktrace();
}
}
首先我可以将上传的文件保存在提到的目录中,到目前为止一切顺利。
主要问题是我无法通过 req.getparameter()
类中的 EmailSave
方法获取由 Form 传递的任何其他参数。我实际上有它们,但值为空。
我尝试了很多解决方案,但都没有奏效。其中一个解决方案提到您可以使用 multiparser
而不是 multiRequest
,但我不知道该怎么做,如果这是答案,请解释如何做到这一点。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)