以下のような動作をする単純なWebサービスを作ろうと思います。
丁寧に(チュートリアル的に)方法を解説してくれているサイトや書籍があればお教えください。

1、Web formからファイルを選択してUpload、
2、ファイルの拡張子とサイズをチェックして、スタートボタンを表示
3、スタートボタンを押すとサーバーでコマンドを実行
(例えばImage magicによるjpeg画像の解析とExif読むソフトとperlによるファイル名への撮影日時の追加)
4、作成されたファイルをFTP等でUPし、リンクを表示する。


私のスキルはCgiはperlの掲示板のフォームを少し改造したことがある程度。コマンドはcygwinで画像関係のシェル書いたりしています(これをwebフォームから出力できるようにしたい)。サーバーは周りはApatchの動作確認程度でこれからです。

例はPerl等でも良いですが、これからPythonを勉強しようと思っていますので、できればPythonで、またサーバー周りの設定も書いてあると嬉しいです。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2013/09/06 01:50:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:dawakaki No.1

回答回数797ベストアンサー獲得回数122

ポイント100pt

1.Pythonで作る簡易アップローダー
http://anopara.matrix.jp/2013/04/24/python%E3%81%A7%E4%BD%9C%E3%82%8B%E7%B0%A1%E6%98%93%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC/

2.Pythonでのファイル拡張子の取得方法
http://www.python-izm.com/contents/application/extension.shtml

3.FORMでACTIONを定義しておけばできます。

4.1でアップロードは完了しているので、FTPでアップロードし直す必要はありません。

  • id:windofjuly
    うぃんど 2013/08/30 05:12:09
    一度に欲張りすぎですよ(笑)

    適当に検索して貼り付けてあげてもいいけど、ポイント乞食みたいでいやなので、
    大まかな流れだけコメントしておきます。

    >1、Web formからファイルを選択してUpload、

    この作業はブラウザから行うことなので、
    サーバーに用意したperlやPython等で直接制御は出来ません。
    (セキュリティの観点から、
     サーバーからクライアントを直接操作できない仕様になっているのです。)

    一例となりますが、
    JAVAScript用のjQueryというライブラリと
    http://jquery.com/
    jQuery用のFine Uploaderというプラグインを組み合わせたりします。
    http://fineuploader.com/
    その他にもjQuery用のプラグインはまだまだあります。
    http://lagoscript.org/jquery/upload
    http://webdelog.info/2013/03/web/javascript/dropzonejs/

    >2、ファイルの拡張子とサイズをチェックして、スタートボタンを表示

    この作業もブラウザ上でおこなうほうが効率良いです。
    前述の方法で可能です。

    >3、スタートボタンを押すとサーバーでコマンドを実行
    (例えばImage magicによるjpeg画像の解析とExif読むソフトとperlによるファイル名への撮影日時の追加)
    >4、作成されたファイルをFTP等でUPし、リンクを表示する。

    これらは流れが少し違いますし、
    ブラウザ上からのアップロードはFTPではなくhttpリクエストです。
    (前述のjQueryもhttpリクエストでサーバーに送信します。)
    サーバーはブラウザからのリクエストに添付された画像を受け取ることになります。
    apacheはCGIの仕組みを通じてperlやPythonなどに処理を画像を受け渡し、
    あとはperlやPython側で好きに加工し、保存します。


    1,2は見た目こだわらなければHTMLタグで代用できることなので、
    まずは3,4から始めたほうがいいんじゃなかな?
    CGI掲示板いじったことがあるなら、その掲示板の仕組みを洗いなおしたり、
    画像掲示板のCGIの仕組みを洗いなおすだけで、3,4は理解できると思いますよ。

    では、がんばって。
  • id:Lhankor_Mhy
     じゃあ、続きまして僭越ながらPython関係を。
     
     Pythonで画像を取り扱うライブラリというとPILですね。↓このサイトは分かりやすい。
    http://www.geocities.jp/showa_yojyo/note/python-pil.html
     exifの操作はexif.pyというモジュールがあるみたいです。使ったことないです。
    http://meganehouser.hatenablog.com/entry/2012/01/09/214853
     PythonのCGIは、GAEでも使われているwebappやwebapp2などがいいんじゃないでしょうか。チュートリアル的なものが日本語ではちょっと見当たりませんでしたが、GAEの解説記事がある程度参考になります。
    https://developers.google.com/appengine/docs/python/gettingstarted/usingwebapp?hl=ja

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

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

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

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