[英]Working with MultipartFile in Spring MVC 5 always return null
我無法將圖像上傳到服務器中的特定目錄。 multipartfile變量始終為空,這是我的代碼
Config Bean
@Bean
public CommonsMultipartResolver multipartResolver()
{
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
return resolver;
}
域類
private MultipartFile producImage;
public MultipartFile getProductImage() {
return producImage;
}
public void setProducImage(MultipartFile producImage) {
this.producImage = producImage;
}
控制器類
@RequestMapping(value = "/products/add", method = RequestMethod.POST)
public String processAddNewProductForm(@ModelAttribute("newProduct") Product newProduct, BindingResult result, HttpServletRequest request)
{
String[] suppressedFields = result.getSuppressedFields();
if(suppressedFields.length > 0)
{
throw new RuntimeException("Attempting to bind disallowed fields " + StringUtils.arrayToCommaDelimitedString(suppressedFields));
}
// productImage always receive null value !!!!!!
MultipartFile productImage = newProduct.getProductImage();
String rootDirectory = request.getSession().getServletContext().getRealPath("/");
if(productImage != null && !productImage.isEmpty())
{
try
{
productImage.transferTo(new File(rootDirectory + "resources\\images\\" + newProduct.getProductId() + ".png"));
}
catch(Exception ex)
{
throw new RuntimeException("Product Image Saving failed", ex);
}
}
productService.addProduct(newProduct);
return "redirect:/market/products";
}
前端:addproduct.jsp
<form:form method="POST" modelAttribute="newProduct" class="form-horizontal" enctype="multipart/form-data">
<fieldset>
<legend>Add New Product</legend>
<div class="form-group">
<label class="control-label col-lg-2" for="productImage">
<spring:message code="addProduct.form.productImage.label" />
</label>
<div class="col-lg-10">
<form:input id="productImage" path="productImage" type="file" class="form:input-large" />
</div>
</div>
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<input type="submit" id="btnAdd" class="btn btn-primary" value ="Add"/>
</div>
</div>
</fieldset>
</form:form>
我不知道為什么不起作用。 謝謝您的幫助
您必須初始化類型為MultipartFilter的bean並設置多部分解析器,從而使Spring能夠處理包含文件的請求:
@Bean
public MultipartFilter multipartFilter(){
MultipartFilter multipartFilter = new MultipartFilter();
multipartFilter.setMultipartResolverBeanName("multipartResolver");
return multipartFilter;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.