【发布时间】:2019-05-03 15:42:17
【问题描述】:
我无法将图像上传到服务器中的特定目录。 multipartfile 变量总是为空,这里是我的代码
配置 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>
我不知道为什么不工作。提前感谢您的帮助
【问题讨论】: