Rubyでファイルのアップロード
稟議決裁書類の管理用WebスクリプトをRubyで作っていたのですが、題名だけで検索できても結局ファイルを探して内容を確認しなくてはならないので不便。
以前紹介したバージョンはこちら。
ということで、PDFで取り込んだものを保存できるようにするため、Rubyでファイルをアップロードする機能を実装してみました。
ついでにデータベースのスキーマもちょっといじって、区分や分類を編集できるようにしてますがこれは主題ではないので説明を省略。
で、アップロードするのに必要なフォームを
アップロードしたいファイル : <input type="FILE" name="file"><br>
コメント : <input type="text" name="comment" size="40"><br>
<input type="submit" name="upload" value="アップロードする">
</form>
cgi = CGI.new()
file = cgi.params["file"][0]
comment = cgi.params["comment"][0].read
file_name = file.original_filename.split(/(\\|\/)/)[-1]
open(Dir.getwd + "/file/#{file_name}", "w") {|fh|
fh.binmode
fh.write file.read
}
ここで注意したいのは、送信したコメントを取得するためにreadメソッドを利用するということです。
アップロードするのに合わせて何か付加情報を登録したい場合があると思いますが、multipart/form-dataで送信した場合、通常のフォームデータの受け取り方法ではだめみたいですね。
これがわかるまでには結構時間がかかりました。
で、完成品は下記のサイトで確認できますので、興味のある方は動作テストしてみて下さい。勝手に登録・削除して頂いてかまいませんので、ご自由にどうぞ。
また、ソースコードも合わせて公開するので、こちらの方も必要な方はご利用下さい。
以上、備忘のためのメモでした。
*2008/9/22追記
ちょこっと修正したので、更新版を公開します。
「ringi002.zip」をダウンロード
*2008/9/25追記
またまた修正したので、更新版を公開します。主な改良点として、「確認」ボタンを押した時に、インラインフレームでPDFを表示するようにしました。これで、いちいち新しいウィンドウを開かなくても中身の確認ができます。
「ringi003.zip」をダウンロード
| 固定リンク
この記事へのコメントは終了しました。
コメント
偽物ロンジン時計
主な経営スーパーコピー:バッグ,財布,腕時計,ファッション小物,ブランド商品
商品の数量は多い、品質はよい、価格は低い、現物写真!
経営方針: 品質を重視、納期も厳守、信用第一は当社の方針です。
┏┓┏━┓ ★★★絶対価値ありで~す
┏┻┻┛□┃┏★★★★┓┏━━━━┓┏━━━━┓┏━━━━┓
┃超人気新作N品登場☆注文を期待歓迎光臨┃
┗◎━━◎┻┻◎━━◎┻┻◎━━◎┻┻◎━━◎┻┻◎━━◎┛
投稿: スーパーコピー財布 | 2021/11/22 01:45