Vue.js Vue Dropzone在没有“的情况下不工作”;url";选项

Vue.js Vue Dropzone在没有“的情况下不工作”;url";选项,vue.js,file-upload,axios,graphql,vue-dropzone,Vue.js,File Upload,Axios,Graphql,Vue Dropzone,我正在使用Vue Dropzone使用graphql上载文件。一切正常,但由于我使用graphql,我不需要在“dropzoneOptions”中添加URL,因为我将查询放入Vuex模块中的Axios API中,如下所示: async vFileAdded(bomFile){ const formData = new FormData() const data = { query: ` mutation ( $file: Upload,

我正在使用Vue Dropzone使用graphql上载文件。一切正常,但由于我使用graphql,我不需要在“dropzoneOptions”中添加URL,因为我将查询放入Vuex模块中的Axios API中,如下所示:

async vFileAdded(bomFile){
  const formData = new FormData()
  const data = {
    query: `
        mutation (
          $file: Upload,
          $projectId: ID!,
          $region: String!,
          $isTest: Boolean,
        ) {
        uploadBom(
          input: {
            bom: $file,
            projectId: $projectId,
            region: $region,
            isTest: $isTest,
          }) {
              project {
                  id
                  name
                }
            }
        }
      `,
    variables: {
      file: null,
      projectId: "UHJvamVjdE5vZGU6MTU=",
      region: "Lombardia",
      isTest: true
    }
  }
  formData.append('operations', JSON.stringify(data))
  const map = {
    '0': ['variables.file'],
  }
  formData.append('map', JSON.stringify(map));
  formData.append('0', bomFile)
  
  try {
    axios.defaults.headers.common["Authorization"] =
      "JWT " + localStorage.getItem("edilgo-token")
    const result = await axios({
      method: 'POST',
      url: process.env.VUE_APP_API_URL,
      data: formData,
    })
    console.log(result)
  } catch (error) {
    console.error(error)
  }
},
现在,正如我所说,它可以工作,但前提是我在“dropzoneOptions”中使用假url。如果我没有在那里写任何东西,我甚至无法选择要上传的文件(现在我只使用“http://localhost“让它工作起来)

我还尝试在未设置“url”时拖放文件,它只是在浏览器中下载文件

我的问题是:

有没有更好的方法将Dropzone与graphql结合使用?也许我做错了


如果有人能帮助我,我将不胜感激。

您必须在选项中声明autoProcessQueue并将其设置为false

使用它:

<dropzone id="foo" ref="el" :options="options" @vdropzone-file-added="sendingFile"></dropzone>
在您的方法中:

methods: {
  sendingFile(file) {
    // Dispatch your file
    ...
  },
},

您必须在选项中声明autoProcessQueue并设置为false

使用它:

<dropzone id="foo" ref="el" :options="options" @vdropzone-file-added="sendingFile"></dropzone>
在您的方法中:

methods: {
  sendingFile(file) {
    // Dispatch your file
    ...
  },
},

你找到了@Ionut解决方案了吗?不幸的是没有。但是我决定使用一个自定义URL来上传文件,而不是使用graphql,这就是为什么我没有在这里添加解决方案的原因,因为它不是找到的问题的真正解决方案@Jérémie ChazelleDid你找到了@Ionut的解决方案吗?不幸的是没有。但是我没有使用graphql,而是决定使用一个自定义URL来上传文件,这就是为什么我没有在这里添加解决方案,因为它并不是找到的问题的真正解决方案@杰里米·查泽勒