在Spring中上传文件而不使用表单数据

时间:2015-12-08 04:48:32

标签: java file spring-mvc upload

我在Java中使用Spring框架。有了它,我正在尝试编写一个API端点,它接受一个文件进行上传。我不想使用表单数据。基本上我希望以下curl命令在我的端点上工作

curl -XPOST localhost:8080/upload -d @local_file.data

有没有办法用Spring做到这一点?看起来我想在文件中使用@RequestBody但对大多数人来说这似乎是一个可怕的想法。为什么? MultipartFile与File有何不同?只是因为它支持表单数据?

我能找到的只是谈论表格和MultipartFile。我在做什么本来就错了?我在使用Python / Django之前已经完成了它并没有那么难。

1 个答案:

答案 0 :(得分:3)

似乎我的问题的答案是将@RequestBody与字节数组一起使用。这将在ByteArrayHttpMessageConverter中启动,这是默认的HttpMessageConverters之一。我最终得到了这样的API端点。

--There was a slight ';' syntactical mistake which was in the way of compiling FUNCTION correctly. I have posted below code hope it helps

CREATE OR REPLACE FUNCTION sum_of_task_types(
    project project.project_no%TYPE)
  RETURN NUMBER
IS
  task NUMBER;
BEGIN
  SELECT COUNT(DISTINCT t.task_type_no)
  INTO task
  FROM project p,
    stage s,
    task t
  WHERE user_input_var = p.project_no
  AND p.project_no     = s.project_no
  AND s.stage_id       = t.stage_id
  AND p.project        = project;
  RETURN task;
END; 

初步测试工作。在Spring文档中找到它:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestbody