2017-01-31 50 views
0

我目前正嘗試通過中繼上傳文件,但每當我嘗試執行突變時,我都會收到來自我們的GraphQL服務器實現的語法錯誤。我目前使用graphql-js-0.4.18和graphql-relay-js-0.3.6。我假設這些包版本中的一個(或兩個)是罪魁禍首。有誰知道我需要哪些最低版本的這些軟件包來正確支持文件上傳?我被迫將這些軟件包移植到不同的語言,這就是爲什麼我關心所需的最低版本。提前致謝!需要哪些版本的graphql-js和graphql-relay-js來支持通過Relay Mutation getFiles函數進行文件上傳?

突變請求

------WebKitFormBoundaryKwC5gIWABIRSXoeW 
Content-Disposition: form-data; name="query" 

mutation UploadFileMutation($input_0:CTI_Mutation_UploadFileInput!) { 
    uploadFile(input:$input_0) { 
    clientMutationId, 
    ...F0 
    } 
} 
fragment F0 on CTI_Mutation_UploadFilePayload { 
    success 
} 
------WebKitFormBoundaryKwC5gIWABIRSXoeW 
Content-Disposition: form-data; name="variables" 

{"input_0":{"fileName":"test_file_upload.txt","clientMutationId":"3"}} 
------WebKitFormBoundaryKwC5gIWABIRSXoeW 
Content-Disposition: form-data; name="file"; filename="test_file_upload.txt" 
Content-Type: text/plain 


------WebKitFormBoundaryKwC5gIWABIRSXoeW-- 

突變響應

{"errors":[{"message":"Syntax Error GraphQL request (1:2) Invalid number, expected digit but got: \"-\".\n\n1: ------WebKitFormBoundaryKwC5gIWABIRSXoeW\n ^\n2: Content-Disposition: form-data; name=\"query\"\n","locations":[{"column":2,"line":1}]}]} 
+0

我查看了這兩個軟件包的發行說明,但沒有看到明確指出文件上傳功能的任何內容。 – husterk

回答

1

事實證明,這不是一個GraphQL /繼電器問題都沒有。我只需要爲我的WebServer添加對multipart/form = data處理的支持,現在我可以成功上傳文件。

+0

你是如何處理graphql中的上傳文件的? –

+0

在我的變種中,我使用了getFiles()函數並傳遞給用戶通過文件選取器選擇的文件。然後,在我的服務器上,我添加了對多部分/表單數據處理的支持。這將是服務器相關的功能。就我而言,我使用的是基於Owin編寫的用C#編寫的自定義Web服務器。 – husterk

相關問題