Rails 3 - Verwenden Sie JSON, um das Bild hochzuladen

8

In meiner Rails 3-Anwendung habe ich mehrere Modelle und jedes Modell ist einem anderen Modell zugeordnet.

User model

%Vor%

Department Modell

%Vor%

Ich versuche, Daten über den Post-Manager-REST-Client einzufügen Verwenden von JSON. Ich habe einige der Formate gefunden, außer es gibt ein Bild-Upload-Feld im User -Modell, das ich mit dem PaperClip -Element bearbeiten werde.

Durch meine Schienenansicht funktioniert es gut, aber wie lade ich ein Bild mit Postboten hoch?

Zum Hochladen über den REST-Client benötige ich das JSON-Format, das meinem Bild entspricht.

Gibt es eine Möglichkeit, das Bild in JSON einzubetten, damit ich den Postboten-Rest-Client verwenden kann?

    
Cyber 17.12.2012, 10:03
quelle

1 Antwort

17

- Verwenden von Base64

  

Was ist Base64
  Wenn Sie einige binäre Daten haben, die Sie über ein Netzwerk versenden möchten, tun Sie dies in der Regel nicht, indem Sie einfach die Bits und Bytes in einem Rohformat über die Leitung streamen. Warum? weil einige Medien zum Streamen von Text gemacht werden. Sie wissen nie - einige Protokolle können Ihre Binärdaten als Steuerzeichen (wie ein Modem) interpretieren, oder Ihre Binärdaten könnten vermasselt sein, weil das zugrundeliegende Protokoll denken könnte, dass Sie eine spezielle Zeichenkombination eingegeben haben (wie FTP Zeilen übersetzt) Endungen).

     

Um das zu umgehen, codieren die Leute die binären Daten in Zeichen. Base64 ist eine dieser Arten von Codierungen. Warum 64? Da Sie sich im Allgemeinen darauf verlassen können, dass in vielen Zeichensätzen dieselben 64 Zeichen vorhanden sind, können Sie einigermaßen sicher sein, dass Ihre Daten auf der anderen Seite der Leitung nicht beschädigt werden.

- Entnommen aus Wofür wird die base 64-Codierung verwendet?

So können Sie beispielsweise eine Base64-Zeichenfolge in Ihre json-Anfrage einfügen und von Ihrer App dekodieren lassen.

%Vor%

Hier ist, was Ihr Modell tun könnte

%Vor%

Aber ein kurzer Blick auf POSTMAN sagt mir, dass Sie die Codierung selbst vornehmen müssen.

Alternativ
Sie können einfach eine URL anstelle der Daten übergeben - wenn die URL auf die Ressource verweist, die im Internet verfügbar ist.

%Vor%

Aktualisieren
Postman erlaubt Ihnen tatsächlich, eine Post-Anfrage mit einem angehängten Bild zu erstellen. Ist das nicht das, wonach Sie suchen?

    
krichard 19.12.2012, 11:42
quelle