Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向REST api发送多部分文件时发生Spring错误_Java_Spring_Rest_Upload_Multipart - Fatal编程技术网

Java 向REST api发送多部分文件时发生Spring错误

Java 向REST api发送多部分文件时发生Spring错误,java,spring,rest,upload,multipart,Java,Spring,Rest,Upload,Multipart,我正试图向我的REST Web服务发送一个图像,但我得到一个错误。 我尝试了很多不同的方法(保存字节数组,发送另一种类型的文件,…),但没有找到好的方法 Spring服务代码(使用参数调用API): 是否有人有办法将我的文件发送到我的API,然后保存它?不使用MultiPartFile处理文件,您可以将文件转换为Base64字符串,并在@Lob注释的帮助下进行存储。您可以使用FileReader对象在将文件发送到RESTWeb服务时读取该文件 不必使用MultiPartFile处理文件,您可以将

我正试图向我的REST Web服务发送一个图像,但我得到一个错误。 我尝试了很多不同的方法(保存字节数组,发送另一种类型的文件,…),但没有找到好的方法

Spring服务代码(使用参数调用API):


是否有人有办法将我的文件发送到我的API,然后保存它?

不使用MultiPartFile处理文件,您可以将文件转换为Base64字符串,并在@Lob注释的帮助下进行存储。您可以使用FileReader对象在将文件发送到RESTWeb服务时读取该文件

不必使用MultiPartFile处理文件,您可以将文件转换为Base64字符串,并借助@Lob注释进行存储。您可以使用FileReader对象在将文件发送到RESTWeb服务时读取该文件

public void uploadImage(String id, MultipartFile file) {
    RestTemplate rt = new RestTemplate();
    LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
    map.add("filename", "tt");
    map.add("extension", "png");
    map.add("file", file);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.MULTIPART_FORM_DATA);

    HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity = new HttpEntity<LinkedMultiValueMap<String, Object>>(
            map, headers);
    ResponseEntity<String> result = rt.exchange(WebConstant.API_URL + "melt/" + id + "/image", HttpMethod.POST, requestEntity, String.class);
}
@RequestMapping(value="/{meltId}/image", method=RequestMethod.POST)
public @ResponseBody String uploadMeltImage(@PathVariable String meltId, @RequestParam String filename, @RequestParam String extension, @RequestParam("file") MultipartFile file){
    System.out.println("check 1");
    Melt knownMelt = meltRepo.findOne(meltId);
    if (file != null && knownMelt != null && extension != null && filename != null) {
        try {
            String url = filename + "." + extension;
            InputStream is = file.getInputStream();

            // Prepare buffered image.
            BufferedImage img = ImageIO.read(is);

            // Create a byte array output stream.
            ByteArrayOutputStream bao = new ByteArrayOutputStream();

            // Write to output stream
            ImageIO.write(img, extension, bao);

            if (knownMelt.getImageUrl() != url){
                knownMelt.setImageUrl(url);
                meltRepo.save(knownMelt);
            }
            return "You successfully uploaded for melt" + meltId + "!";

        } catch (Exception e) {
            return "You failed to upload for melt" + meltId + " => " + e.getMessage();
        }
    } else {
        return "You failed to upload for melt" + meltId + " because the file was empty.";
    }
}