当前位置: 首页 > 知识库问答 >
问题:

我不能用graphql-java上传文件

云卓
2023-03-14

我尝试用java GraphQL上传文件。我研究了这个主题的解决方案:如何用GraphQL-Java上传文件?我使用的是graphql-java版本11.0、graphql-spring-boot-starter版本5.0.2、graphql-java-kickstart版本7.5.0。

public class PartDeserializer extends JsonDeserializer {

  @Override
  public Part deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {

    return null;
  }

  @Bean
  public ObjectMapper objectMapper() {
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
    SimpleModule module = new SimpleModule();
    module.addDeserializer(Part.class, new PartDeserializer());
    objectMapper.registerModule(module);
    return objectMapper;
  }
}
@Configuration
public class GraphqlConfig {

  @Bean
  public GraphQLScalarType uploadScalarDefine() {
    return ApolloScalars.Upload;
  }
}
public Boolean testMultiFilesUpload(List<Part> parts, DataFetchingEnvironment env) {
        // get file parts from DataFetchingEnvironment, the parts parameter is not use
        List<Part> attachmentParts = env.getArgument("files");
        int i = 1;
        for (Part part : attachmentParts) {
            String uploadName = "copy" + i;
            try {
                part.write("your path:" + uploadName);
            } catch (IOException e) {
                e.printStackTrace();
            }
            i++;
        }
        return true;
    }
scalar Upload
testMultiFilesUpload(files: [Upload!]!): Boolean
operations
{ "query": "mutation($files: [Upload!]!) {testMultiFilesUpload(files:$files)}", "variables": {"files": [null,null] } }

map
{ "file0": ["variables.files.0"] , "file1":["variables.files.1"]}

file0
0.jpeg
file1
1.jpeg
INFO 11663 --- [0.1-1100-exec-7] g.servlet.AbstractGraphQLHttpServlet     : Bad POST multipart request: no part named "graphql" or "query"

我做错了什么?

共有1个答案

姜德容
2023-03-14

我建议您使用Apollo https://github.com/apollographql/apollo-android

它使用RxJava集成、改造、订阅和对AutoValue的支持。这将使您的工作变得更容易,因为在构建查询&解析GraphQL响应方面没有直接的方法。

 类似资料:
  • 本文向大家介绍java实现文件上传功能,包括了java实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现文件上传的具体代码,供大家参考,具体内容如下 一、文件上传准备工作 对于文件上传,浏览器在上传的过程中将文件以流的形式提交到服务器。 可以选择apache的commons-fileupload包作为文件上传组件,commons-fileupload包依赖于

  • springboot接收前端上传到后端的文件时,在controller层内大多数使用的是MultipartFile进行接收的,当使用file进行接收时会报错 有大佬知道为啥不能用file接收文件吗?

  • 我看了很多上传的线程,但没有找到答案。有人能帮帮我吗。我有一个浏览按钮,让我选择文件上传从我的电脑到网站。以下是网站上browse按钮所在的html代码: 我尝试了:WebElement elem=driver.findElement(by.xpath(“//*[@id='Content FileInputUploader']”));ELEM.SendKeys(“C:///video/file.f

  • 这是我的主要html文件; 这里是ajaxshow.js; 这里是PHP文件; 当我用静态超文本标记语言加载图像时(注释掉),它工作正常。当我运行上面的代码时,它会加载目录中的第一个图像,但它不可拖动或调整大小。当我从PHP文件的回声部分取出类ID时。它可以加载图像,但当然它们是不可拖动或调整大小的。有人能帮忙吗。非常感谢。尼尔。