2
我得到了一個經典的多部分形式與彈簧mvc 3工作正常:我可以上傳文件到控制器與2參數(名稱和說明)。 我的控制器獲取MultipartFile文件和參數,並將其放入DAO類的數據庫中。彈簧mvc&DWR - 需要幫助來實現進度條,同時上傳文件
我的目標:只需在上載文件時添加我的表單進度條!
任何人都可以通過告訴我不同的步驟來幫助我。 如果可能的話,我更喜歡使用DWR來實現ProgressListener方法。 (爲MultipartResolver實現一個ProgressListener,javascript添加到我的表單中)
任何幫助將被欣賞!
這裏是我的形式:(ajoutDocumentRapport.jsp)
<form:form method="post" action="save.html" commandName="documentFormBean" enctype="multipart/form-data">
<input type="hidden" name="depot" value="${depot.id}"/>
<table>
<tr>
<td><form:label path="name">Name of file</form:label></td>
<td><form:input path="name" /></td>
<td><form:errors path="name" cssClass="error"/></td>
</tr>
<tr>
<td><form:label path="description">Description of file</form:label></td>
<td><form:textarea path="description" /></td>
<td><form:errors path="description" cssClass="error"/></td>
</tr>
<tr>
<td><form:label path="content">Document</form:label></td>
<td><input type="file" name="file" id="file"></input></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="add Document."/>
</td>
</tr>
</table>
</form:form>
這裏是我的控制器:
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ModelAndView save(HttpServletRequest request,
@Valid DocumentFormBean documentFormBean,BindingResult result,
@RequestParam("file") MultipartFile file) {
Map<String,Object> map = new HashMap<String, Object>();
map.put("documentFormBean", new DocumentFormBean());
map.put("documentList",documentDao.findAllForaDepot(Long.parseLong((String) request.getParameter("depot"))));
map.put("depot", depotDao.find(Long.parseLong((String) request.getParameter("depot"))));
if (result.hasErrors()) {
map.put("errors", result);
return new ModelAndView("ajoutDocumentsRapport", map);
} else{
try {
Blob blob = Hibernate.createBlob(file.getInputStream());
Document newDocument = new Document();
newDocument.setTitle(documentFormBean.getName());
newDocument.setDescription(documentFormBean.getDescription());
newDocument.setFilename(documentFormBean.getName());
newDocument.setContentType(file.getContentType());
newDocument.setFilename(file.getOriginalFilename());
newDocument.setContent(blob);
newDocument.setDepot(depotDao.find(Long.parseLong((String) request.getParameter("depot"))));
documentDao.save(newDocument);
map.put("documentList", documentDao.findAllForaDepot(Long.parseLong((String) request.getParameter("depot"))));
} catch (IOException e) {
e.printStackTrace();
}
return new ModelAndView("ajoutDocumentsRapport",map);
}
}