参照ボタン(例:http://www.dspt.net/html_tag/008_data/012.html)からtxt形式のファイルを読み込み、それをテキストボックスで編集し、ボタンをクリックで保存できるページを作るには、どのようなPerl(またはphp)やHTMLのコードを書けば良いですか?良回答には100ポイント差し上げます。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2010/07/14 20:32:16
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

>どのようなPerl(またはphp)やHTMLのコード

"や"の部分のrubyも含まれると信じてサンプルをつくってみました。


概要

  • ファイル一つでrubyのsinatraを使ってローカルサーバを起動し動作します。

準備

  1. rubyが動作する環境を用意する。
  2. "gem install sinatra" でsinatraをインストールする。
  3. 以下のサンプルコードをsave_text.rbなどのファイル名で保存。
  4. ruby save_text.rbで実行し、http://localhost:4567/ にアクセスする。

使い方

  1. トップページでテキストファイルを選択し、loadボタンを押すと、編集画面に移動する。
  2. テキストエリアで編集後、saveボタンを押すと、save_text.rbと同じ場所に同名のファイルが作られる。元ファイルは変更していない。
  3. 保存完了を示すページに飛ぶ。

#!/usr/local/bin/ruby
require 'rubygems'
require 'sinatra'

get '/' do
src = <<"EOS"
<form method="post" action="/" enctype="multipart/form-data" />
<input type="file" name="textdata" />
<input type="submit" value="load"/>
</form>
EOS
  response.body = src
end


post '/' do
  text = params[:textdata][:tempfile].read
  filename = params[:textdata][:filename]

src = <<"EOS"
<form method="post" action="/" enctype="multipart/form-data" />
<textarea name="savetext" cols="60" rows="10">#{text}</textarea>
<input type="hidden" name="_method" value="put">
<input type="hidden" name="filename" value="#{filename}">
<br>
<input type="submit" value="save" />
</form>
EOS

  response.body = src
end


put '/' do
  text = params[:savetext]
  filename = params[:filename]

  open(filename, "wb") do |fh|
    fh.write text
  end
  redirect '/saved'
end

get '/saved' do
  "complete"
end
id:totoiro

回答ありがとうございます。

rubyでも問題無いのですよ。ただ、″gem install sinatra″はどうやってどこにインストールするのかがわかりません。やはり、pcにもrubyを入れなければ出来ないのでしょうか?また、このrbファイルをhtml同様にアップロードするだけで良いのでしょうか?

2010/07/12 21:47:53
id:ko8820 No.2

回答回数1221ベストアンサー獲得回数69

Webブラウザからサーバ上のテキストファイルを編集可能に - Web Editor

http://0-oo.net/sbox/web-editor

----

①ブラウザでファイルを選択して、サーバーに転送

②サーバーに転送されたファイルを編集

id:totoiro

回答ありがとうございます。

これは、サーバーにアップしないと編集できないようですね。

2010/07/12 21:49:51
id:Cherenkov No.3

回答回数1504ベストアンサー獲得回数493

コメント欄が有効になっていないのでこちらに書きます。

  • PCにrubyをインストールする必要があります。One-Click Rubyの1.8.7版をおすすめします。コマンドプロンプトに以下のコマンドで動作可能か確認できます。
ruby -v
gem -v
gem list

-vが付いているのはバージョンが表示されたらok。

gem listにsinatraの名前があればok。

  • 「gem install ~」を入力すれば自動でインストールしてくれます。
  • このサンプルはアップロードする必要はありません。ローカルで実行してください。

やりたい事はいわゆる"cgi"だと思うので、使用したい言語と一緒にググれば例をすぐ見つけることができるでしょう。

sinatraは簡単にウェブアプリをつくるためのプラグインのようなものです。

また、sinatraに対応したherokuというサービスを利用すれば無料でアプリを公開することができるのでおすすめです。


関連

id:totoiro

回答ありがとうございます。ローカルでは実行できました。

しかし、herokuにどうしてもコマンドプロントプトからアップロードできません。(herokuのアカウントは作りました。)

herokuにアップロードするにはどのようにすれば良いでしょうか?質問ばかりですいません。

2010/07/13 21:03:51

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません