TODOS・何でも情報交換TOPから是非ご覧ください。
一番下の投稿フォームへ > スレッド一覧 > 記事閲覧
既存CGIの改造の工夫
日時: 2012/08/10 07:52
名前: りり

こちらで使っているWebPatioは、皆様のご意見でいろいろ改造してきました。

その他、ポピュラーな掲示板CGIなども、ちょっとした改造で自分好みにできますね。

よく行われているのは、メールアドレス記入欄の削除など。

いろいろなやりとりの中に、こちらのWebPatioの改造経過が散らばっているのですが、そうしたものをまとめたり、他の改造例などで気付いたことをまとめられればと思います。

皆様も、良い案があれば、どしどしお寄せください。



o6asanさんが、KENTさんのところのJoyful Note v3.7の改造版を作られました。
JIS補助漢字の表示を目的としたもので、それまで表示されなかった特殊な漢字でも表示されます。
こちらにご紹介します。
http://o6asan.s370.xrea.com/second/
メンテ

*TODOS・何でも情報交換・TOP*<スレッドPage> 最新 | 5 | 4 | 3 | 2 | 1 |

Re: 既存CGIの改造の工夫 ( No.21 )
日時: 2015/02/21 14:48
名前: りり

juneさん、フォローありがとうございます。

このjoyfulyyは、ファイルがたくさんあって、設定の仕方がなかなか複雑ですね。

でも、juneさんの方法でアップできるようになるので、良いのではないでしょうか?
2行にしなくても、,などで区切って併記できる気もしたのですが、ミスが出ないよう二行にする案を出してみました。

エクセルやワードは拡張子の追加だけですが、もともと出ていないタイプのファイル種類を追加するのは、厄介そうですね。

こちらのアップローダーは、| |で区切っていくらでも拡張子の種類を増やせるので簡単なのですが。
http://todos.xsrv.jp/uploader/uploader.cgi
ただし、どんなファイルでもアップできるようになるので、パスワードを設けて管理しないと危険ということでした。
メンテ
Re: 既存CGIの改造の工夫 ( No.22 )
日時: 2015/02/21 15:40
名前: june


こんにちは

>このjoyfulyyは、ファイルがたくさんあって、設定の仕方がなかなか複雑ですね。
本当に多いですね、拡張子で全ファイル検索しそうになりました(笑)

>2行にしなくても、,などで区切って併記できる気もしたのですが、ミスが出ないよう二行にする案を出してみました。
私も2行が簡単そうなのでそれで試してみました。

拡張子によりアップするしないを設定できるようになっているので

mp4の場合 mp4とmpg4ファイル

if ($tail =~ /video\/mp4/i && $mp4) {
if ($fname =~ /\.mpg4$/i) { $tail=".mpg4"; $flag=1; }
else { $tail=".mp4"; $flag=1; }
}

と、下の方
if ($fname =~ /\.mp4$/i && $mp4) { $tail=".mp4"; $flag=1; }
if ($fname =~ /\.mpg4$/i && $mp4) { $tail=".mpg4"; $flag=1; }

のような書き方があるので、doc docxもそうしたらいいのかも?です
でも、私の頭ではついていけません・・・・。

>エクセルやワードは拡張子の追加だけですが、もともと出ていないタイプのファイル種類を追加するのは、厄介そうですね。
この辺は全然見てないですと言うか、分かりません・・・(涙)

>ただし、どんなファイルでもアップできるようになるので、パスワードを設けて管理しないと危険ということでした。
確かに危険かも知れませんね。

メンテ
Re: 既存CGIの改造の工夫 ( No.23 )
日時: 2015/02/21 18:41
名前: はるか

りりさん、joneさんいつもありがとうございます。
ご指摘通りにしましたがまだエラーになります。どこか直す場所がありますかね。

524 if ($tail =~ /audio\/.*mid/i && $midi) { $tail=".mid"; $flag=1; }
525 if ($tail =~ /msword/i && $word) { $tail=".doc"; $flag=1; }
526 if ($tail =~ /msword/i && $word) { $tail=".docx"; $flag=1; }   #追加
527 if ($tail =~ /ms-excel/i && $excel) { $tail=".xls"; $flag=1; }
528 if ($tail =~ /ms-excel/i && $excel) { $tail=".xlsx"; $flag=1; } #追加
#(中略)
564 if ($fname =~ /\.mid$/i && $midi) { $tail=".mid"; $flag=1; }
565 if ($fname =~ /\.doc$/i && $word) { $tail=".doc"; $flag=1; }
566 if ($fname =~ /\,docx$/i && $word) { $tail=".docx"; $flag=1; }  #追加
567 if ($fname =~ /\.xls$/i && $excel) { $tail=".xls"; $flag=1; }
568 if ($fname =~ /\.xlsx$/i && $excel) { $tail=".xlsx"; $flag=1; }  #追加
http://n-h.x0.to/S/joyful
メンテ
Re: 既存CGIの改造の工夫 ( No.24 )
日時: 2015/02/21 18:54
名前: りり

566 if ($fname =~ /\,docx$/i && $word) { $tail=".docx"; $flag=1; }  #追加

のところ、/\,docx とピリオド.ではなく、カンマ,になっています。

エクセルは、良いようですが…
メンテ
Re: 既存CGIの改造の工夫 ( No.25 )
日時: 2015/02/21 19:13
名前: くりくり

今晩は
詳しくはしりませんが、変数がおかしくないですか?

# ファイル形式を認識
$flag=0;
if ($tail =~ /image\/gif/i && $gif) { $tail=".gif"; $flag=1; }
if ($tail =~ /image\/jpeg/i && $jpeg) { $tail=".jpg"; $flag=1; }
if ($tail =~ /image\/x-png/i && $png) { $tail=".png"; $flag=1; }
if ($tail =~ /text\/plain/i && $text) { $tail=".txt"; $flag=1; }
if ($tail =~ /lha/i && $lha) { $tail=".lzh"; $flag=1; }
if ($tail =~ /zip/i && $zip) { $tail=".zip"; $flag=1; }
if ($tail =~ /pdf/i && $pdf) { $tail=".pdf"; $flag=1; }
if ($tail =~ /audio\/.*mid/i && $midi) { $tail=".mid"; $flag=1; }
if ($tail =~ /msword/i && $word) { $tail=".doc"; $flag=1; }
if ($tail =~ /ms-excel/i && $excel) { $tail=".xls"; $flag=1; }
if ($tail =~ /ms-powerpoint/i && $ppt) { $tail=".ppt"; $flag=1; }
if ($tail =~ /audio\/.*realaudio/i && $ram) { $tail=".ram"; $flag=1; }
if ($tail =~ /application\/.*realmedia/i && $rm) { $tail=".rm"; $flag=1; }
if ($tail =~ /video\/.*mpeg/i && $mpeg) { $tail=".mpg"; $flag=1; } # 動画
if ($tail =~ /audio\/.*mpeg/i && $mp3) { $tail=".mp3"; $flag=1; }

をみるとそれぞれ$wordと$exelになってますし拡張子ごとに変数。
それにたいして

564 if ($fname =~ /\.mid$/i && $midi) { $tail=".mid"; $flag=1; }
565 if ($fname =~ /\.doc$/i && $word) { $tail=".doc"; $flag=1; }
566 if ($fname =~ /\,docx$/i && $word) { $tail=".docx"; $flag=1; }  #追加
567 if ($fname =~ /\.xls$/i && $excel) { $tail=".xls"; $flag=1; }
568 if ($fname =~ /\.xlsx$/i && $excel) { $tail=".xlsx"; $flag=1; }  #追加

$wordを二つ使って変数。
この場合は
$docx) { $tail=".docx"
$xlsx) { $tail=".xlsx";

と変数名をかえてみたらいかがですかね?
間違っていたらごめんなさい。
メンテ
Re: 既存CGIの改造の工夫 ( No.26 )
日時: 2015/02/21 19:39
名前: はるか

りりさん、くりくりさん
素早い対応恐れ入ります。
早速CGIのカンマを修正して、変数に1を追加して掲示板でテストしました。
成功です、ワードファイルを添付できました。ありがとうございます。

お話は変わりますがりりさんのアップローダーに、飫肥城しぐれという曲がありますが
飫肥は私の故郷で本当に懐かしく感じました。そんな曲が存在することも知らず三回ぐらい聞きました。
えび路しぐれも他人事とも思えません\ /.
メンテ
Re: 既存CGIの改造の工夫 ( No.27 )
日時: 2015/02/22 19:28
名前: りり

はるかさん、無事解決して何よりでした。


くりくりさん、このjoyfulyyは、他のCGIファイルとの関係も有り、ここの部分の変数だけ操作することは、できない感じがしました。

またdocでもdocxでも起動時に開くのはword、xlsでもxlsxでも、excelで開くということで、拡張子と起動アプリケーションの関係づけの問題のように思いました。

厳密に言えば、古いバージョンのword、exelでは、docx、xlsxは開かないことがあるので、本当は処理が必要かと思いますが。

また、
>xlsxやdocxの実態はzip圧縮されたxmlファイルなので、ApacheなどのWebサーバーの設定によっては、ダウンロードしたファイルの拡張子が.zipになってしまう
http://answers.microsoft.com/ja-jp/windows/forum/windows_7-files/%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%E3%82%92/8478e13a-a265-42cb-9b1f-dcef4389de7f
ということもありますね。

Apacheの設定になると、くりくりさんのお詳しいところですね。

私も、うちのバージョンでは、docx、xlsxが開くのに、「えっ?!」と思ったことがあります。excelの無料テンプレートをダウンロードしたときでした。Webサーバーの設定によるんですね。
メンテ
Re: 既存CGIの改造の工夫 ( No.28 )
日時: 2015/02/22 19:32
名前: りり

はるかさん、飫肥城しぐれについては、こちらを参照ください。
http://todos.xsrv.jp/1pations/todos.cgi?mode=&no=1&p=2

雪豹さんも、たまにいらっしゃいますので、ご当地の話題などでお話しできると良いですね。
メンテ
Re: 既存CGIの改造の工夫 ( No.29 )
日時: 2015/02/22 20:06
名前: くりくり

今晩は
はるかさん解決してよかったよかった。
俺がTODOSで質問に答えるのはかなり久々のような(笑)

さてスレッドの趣旨と違いますが、

>Apacheの設定になると、くりくりさんのお詳しいところですね。
恐らくmod_deflateでxmlを指定しています。
以前、gtmetrixで色々なサイト(webサーバー)しらべましたが、
mod_deflateはほとんどが有効化してます。
メンテ
Re: 既存CGIの改造の工夫 ( No.30 )
日時: 2015/02/22 21:19
名前: りり

くりくりさん、情報ありがとうございます。ダウンロードしたら、ZIPの拡張子になってしまうほうが、特殊かも?

juneさんお使いのtoyparkやはるかさんのサーバは、問題なく、ダウンロードしたとき、そのままの拡張子でした。
メンテ

*TODOS・何でも情報交換・TOP*<スレッドPage> 最新 | 5 | 4 | 3 | 2 | 1 |

楽しい交流と情報交換のTODOS・アップローダーも用意。ぜひTOPからもご覧ください。
ご参考になりましたら、お気軽に一筆お書き込みくださいませ。
題名 スレッドをトップへソート
名前
画像添付
JPEG
GIF
PNG



参照ボタンを押して、PCの画像を指定ください。3枚まで指定できます。縮小画像はクリックで拡大されます。
パスワード (好きなパスワードを。投稿後、右下のスパナマークをクリックし、そのパスワードを入れて修正できます。)
コメント

   クッキー保存
スレッドTOPへ***スレッド一覧