【问题标题】:How to save image in local storage using spring mvc and how upload image through postman?如何使用spring mvc将图像保存在本地存储以及如何通过邮递员上传图像?
【发布时间】:2016-02-18 23:30:15
【问题描述】:

我收到此错误:

请求被拒绝,因为没有找到多部分边界

当我像这样通过邮递员上传图片时:我将 saveImage 作为 url,在标题中我有 content/type 和 multipart/form-data 并选择 raw 并上传了一张图片。

这是我的控制器:

@RequestMapping(value = "/saveImage",
 method = RequestMethod.POST, 
consumes = "application/json", produces = "application/json;charset=UTF-8")


    public @ResponseBody ResponseEntity<GenericResponseVO<? extends IServiceVO>> getImage(
            @RequestBody(required = false) GenericRequestVO<ImageCriteriaVO> imageCriteriaVO,HttpServletRequest request, HttpServletResponse response ) {
            return  requestHandlerInvoker.callHandler(
                HandlerName.SAVE_IMAGE_HANDLER,request,response,imageCriteriaVO);
    }

这是我的处理程序:

public GenericResponseVO<? extends IServiceVO> handleRequest(
            UserContext userCtx, HttpServletRequest httpRequest,
            HttpServletResponse httpResponse,
            GenericRequestVO<? extends IServiceVO> requestVO)
            throws O2Exception {
        GenericResponseVO<ImageResultVO> imageVO = new GenericResponseVO<ImageResultVO>();
        ImageResultVO imageResultVO = (ImageResultVO) serviceInvoker
            .callService(ServiceName.IMAGE_SERVICE, userCtx,requestVO.getBody());
        imageVO.setBody(imageResultVO);
        imageVO.getHeader().setStatus(new Status(Status.SUCCESS, "Token"));         
        return imageVO;

这是我的服务:

public IServiceVO service(UserContext userCtx, IServiceVO inputVO)
            throws O2Exception {
        LOG.info(LoggingEvent.Image_INPROGRESS,"Inside get list of treasure hunt for corporate service");
        ImageCriteriaVO imageCriteriaVO = (ImageCriteriaVO) inputVO;
        System.out.println(imageCriteriaVO.getFile());
        ImageResultVO imageResultVO = new ImageResultVO();  
        CommonsMultipartFile file = null;           
            String fileName = null;
            if (!file.isEmpty()) {
                try {
                    fileName = file.getOriginalFilename();
                    byte[] bytes = file.getBytes();
                    BufferedOutputStream buffStream = 
                            new BufferedOutputStream(new FileOutputStream(new File("F:/" + fileName)));
                    buffStream.write(bytes);
                    buffStream.close();
                }catch (Exception e) {

                }
            }   

        return imageResultVO;
    }

这是我的标准类:

public class ImageCriteriaVO implements IServiceVO{

    private byte[]  file;

    public byte[] getFile() {
        return file;
    }

    public void setFile(byte[] file) {
        this.file = file;
    }
}

【问题讨论】:

    标签: java spring-mvc


    【解决方案1】:

    希望这个回答对你有帮助

    当您尝试上传时,从标题中删除Content-Type,Postman 会自动完成。

    如果您设置Content-Type: undefined,Postman 将自动将 Content-Type 设置为 multipart/form-data 并根据媒体设置边界。

    Mail user agents ignore content-disposition headers in the messages.
    

    文件名应在文件名参数中提及。否则应在文件名和名称参数中提及5 multipart/form-data with Angular JS

    【讨论】:

      猜你喜欢
      • 2018-03-31
      • 2021-09-13
      • 2021-03-24
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 2019-05-15
      • 1970-01-01
      相关资源
      最近更新 更多