2016-07-12 4 views
0

ich eine Form haben, eine Datei zu laden:Senden einer Datei an einen sinatra Backend

<form action="/upload" method="post"> 
    <input type="file" name="image"> 
    <input type="submit"> 
</form> 

und ich versuche, zu sehen, was vorgelegt wird. In Google Chrome Inspektionselement und wenn ich params.inspect in meinem Back-End verwenden, ist die einzige Formulardaten, die gesendet wird {:image => "<submitted file name>"}. Wie kann ich die tatsächlichen Bilddaten erhalten?

{ 
    "image" => { 
    :type => "image/png", 
    :head => "Content-Disposition: form-data; 
       name=\"myfile\"; 
       filename=\"cat.png\"\r\n 
       Content-Type: image/png\r\n", 
    :name => "myfile", 
    :tempfile => #<File:/var/folders/3n/3asd/-Tmp-/RackMultipart201-1476-nfw2-0>, 
    :filename=>"cat.png" 
    } 
} 

Ich habe keine Ahnung, warum das geschieht nicht: Wie pro this website sollte ich etwas im Format empfangen nur. Wenn jemand eine Erklärung und Korrektur anbieten kann, wäre das fantastisch.

Antwort

1

Um Dateien, die Sie die enctype attribute auf das form Element multipart/form-data einstellen müssen hochladen:

<form action="/upload" method="post" enctype="multipart/form-data">