質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

Q&A

解決済

1回答

2574閲覧

画像のアップロード方法

selecao3

総合スコア10

Rust

Rustは、MoFoが支援するプログラミング言語。高速性を維持しつつも、メモリ管理を安全に行うことが可能な言語です。同じコンパイル言語であるC言語やC++では困難だったマルチスレッドを実装しやすく、並行性という点においても優れています。

0グッド

0クリップ

投稿2018/07/19 05:52

はじめまして、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というクレートを使おうとしましたが、結局どう使えばいいのか分かりませんでした・・・)

もし、足りない情報があれば分かる範囲内でお答えします。
大変お手数をおかけしますがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(上のリンク先で知ったmultipartというクレートを使おうとしましたが、結局どう使えばいいのか分かりませんでした・・・)

multipartクレートのexamplesにRocketで使う場合のコード例がありますので、まずはそちらを参考にするのがよさそうです。

もしわからないことがあれば私の方でも調べてみますので、コメントなどで知らせてください。

投稿2018/07/19 14:52

tatsuya6502

総合スコア2035

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

selecao3

2018/07/20 00:25

ご回答ありがとうございます。 冷静になって、multipartクレートのサンプルを一行一行読んで、自身のwebアプリに適応するようにしたところ、目的の「画像のアップロード」が出来ました。 今後はサンプルなどをじっくり読んでから質問することにします・・・(笑) ご助言ありがとうございました。
tatsuya6502

2018/07/20 04:57

解決してよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問