Hallo zusammen,
ich versuche, ein Bild über die folgende Discourse-API mit Java-Code hochzuladen:
https://discourse.example.com/uploads.json
Dabei sende ich im Body folgendes JSON:
{
“type” : “avatar”,
“user_id”: 1,
“synchronous”: true,
“file”: “Binary String”
}
Als Antwort erhalte ich jedoch folgendes Ergebnis:
{
“failed”: “FAILED”,
“message”: “undefined method `tempfile’ for #String:0x000055fc2e0a01d8 ”
}
Wo liegt mein Fehler?
Bitte helft mir.
dhanya
(Dhanyamol K V)
22. September 2020 um 16:09
2
Ich erlebe das gleiche Problem. @Saurabh_Khandelwal , wenn du eine Lösung findest, antworte mir bitte.
1 „Gefällt mir“
blake
(Blake Erickson)
22. September 2020 um 16:23
3
Der Parameter für file muss files[] heißen. Siehe diese Antwort für ein Beispiel mit Postman:
Okay I just verified that I got this to work. You just need to add the synchronous: true value to get the id.
[image]
now that we have the id: 17 we can then make one more request:
[image]
dhanya
(Dhanyamol K V)
22. September 2020 um 16:36
4
Dies sind meine Beispieldaten
Array
(
[type] => avatar
[user_id] => 3
[synchronous] => 1
[file ] => 1101000 1110100 1110100 1110000 1110011 111010 101111 101111 1101011 1101001 1111000 101101 1100100 1100101 1110110 101110 1100001 1110011 1110011 1111001 1110011 1110100 101101 1110101 1100011 101110 1100011 1101111 1101101 101111 1110011 1101001 1110100 1100101 1110011 101111 1100100 1100101 1100110 1100001 1110101 1101100 1110100 101111 1100110 1101001 1101100 1100101 1110011 101111 1110000 1101001 1100011 1110100 1110101 1110010 1100101 1110011 101111 110010 110000 110010 110000 101101 110000 110111 101111 1101011 1101001 1111000 1110100 1100101 1100001 1101101 1011111 1101001 1101101 1100111 110001 101110 1101010 1110000 1100111
)
Datei als Binärzeichenkette senden. Antwort wie unten erhalten. Dies ist Drupal
/uploads.json führte zu einer 422 Unprocessable Entity-Antwort: {“failed”:“FAILED”,“message”:“undefined method `tempfile’ for #\u003cArray:0x00007f0d5c784810\u003e”}
Versuche die Integration von Drupal mit Discourse.
jwulf
(Josh Wulf)
8. Dezember 2020 um 07:09
5
Ist es dir gelungen, das zum Laufen zu bringen? Ich habe mit Node.js alle möglichen Kombinationen ausprobiert, aber es funktioniert einfach nicht.
Ich erhalte einen Fehler 422 (Unprocessable Entity).
In der Discourse-Dokumentation heißt es, dass der Content-Type für die Anfrage application/json ist.
In diesem Beitrag verwendet das Postman-Beispiel form-data, und wenn ich den Composer in der Discourse-Web-Oberfläche beobachte, wird ein Multi-Part-Post verwendet.
Weiß jemand, wie man das über die API ohne den Ruby-Client erledigt?
CormacW43
(Cormac W.)
28. August 2024 um 11:47
6
Das scheint immer noch nicht zu funktionieren.
Das ist die Fehlermeldung, die ich erhalte, wenn ich versuche, ein Bild hochzuladen, und zwar binär.
Unprocessable Entity - {\"failed\":\"FAILED\",\"message\":\"undefined method `tempfile' for an instance of String\"}