用于上传文件的Spring API(MultiPart)将图像的contentType解释为application / octet-stream

时间:2013-09-22 09:05:49

标签: grails content-type image-uploading multipartform-data

使用Spring API(MultiPartFile)上传文件(图像,..)在localhost上正常工作。

然而,在Linux Server上部署之后,控制台显示Spring API解释了上传文件的contentType,例如application/octet-stream。,

    at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
    at org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:449)
    at com.myproject.utils.upload.FileUploadUtil.uploadFile(FileUploadUtil.java:64)
    at com.myproject.utils.GenericFileUploadService$_upload_closure1.doCall(GenericFileUploadService.groovy:56)
    at com.myproject.utils.GenericFileUploadService.upload(GenericFileUploadService.groovy:53)
    at com.myproject.utils.GenericFileUploadService.upload(GenericFileUploadService.groovy:63)
    ... 7 more
org.springframework.web.multipart.commons.CommonsMultipartFile@1723bb6
content.AssetService File instance : org.springframework.web.multipart.commons.CommonsMultipartFile@1723bb6
println contentType =application/octet-stream

因此,当我使用ImagikImage将上传的文件转换为缩略图时,我收到以下错误:

    `org.im4java.core.CommandException: org.im4java.core.CommandException: convert: unable to open image 
/var/lib/tomcat7/myproject/ROOT/media/5/34:  @ error/blob.c/OpenBlob/2587.

知道图像应该在以下路径中正常保存

 /var/lib/tomcat7/myproject/ROOT/media/5/34.png

我发现了这种配置,我不知道它的效率:

grails.web.disable.multipart=true 

1 个答案:

答案 0 :(得分:0)

你的文件上传表单应该有一个属性enctype='multipart/form-data',如果没有,文件内容可以被视为unicode字符,你的图像文件会被破坏