はじめまして、Rustのwebフレームワークrocketでwebアプリを開発しているプログラミング初心者です。
色々調べましたが、どうしても実装方法が分からない点がありましたので、申し訳ございませんがご教示願います。
実現したいこと
Rocketで「画像のアップロード機能を実装」したいです。
私は以下のコードを作成しました。
lang
1<form action="/creater/account/post/upload" method="post" name="form3" id="id_form3" enctype="multipart/form-data"> 2 <fieldset> 3 <input name="file" type="file" accept="image/*"> 4 <input type="submit" value="upload"> 5 </fieldset> 6 </form>
lang
1 2#[post("/upload", data = "<data>")] 3fn upload(data: Data) -> io::Result<Redirect> { 4 data.stream_to_file("static/post_image/hoge.txt"); 5 Ok(Redirect::to("/")) 6}
上のコードで確かにファイルは保存されましたが、保存された画像をダブルクリックしても開けず、保存されたファイルの中身を見てみると
lang
1-----------------------------104034036041662940957099118 2 Content-Disposition: form-data; name="file"; filename="1548b8da28274e9f44a39bfebef33bf72da4c89b_s2_n2.png" 3 Content-Type: image/png 4 5 <89>PNG 6 (以下、バイナリデータ)
という具合でした。
<89>PNGより上部分を削除すると、画像がダブルクリックで表示できたので、うまく<89>PNGから下の部分が欲しいです。
参考にした情報
upload images #105
Support Multipart Forms #106
(上のリンク先で知ったmultipartというクレートを使おうとしましたが、結局どう使えばいいのか分かりませんでした・・・)
もし、足りない情報があれば分かる範囲内でお答えします。
大変お手数をおかけしますがよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/20 00:25
2018/07/20 04:57