21:34 2005/10/10 適当な Sn Uploader FAQ Q1. これは何ですか? Q2. Perlですか?PHPですか? Q3. 設置できません(動きません,500エラーがでる) Q4. NoCGI.pm版とCGI.pm版どっち使えばいいんですか? Q5. 設定の 0とか 1とか って何ですか? Q6. フレームを使っているページなのでリンクをクリックしたら新しいウィンドウで開きたい Q7. 設定はデフォルトのままじゃいけないの? Q8. ユーザからkeyはあってる(はずな)のにファイルが削除できませんと言われる Q9. エラーメッセージが全く表示されません Q10. NoCGI.pm版でエラーメッセージにPOSTデータ不完全と大量に残っています Q11. 管理モードに入るのが面倒です Q12. 赤い"*"って何? Q13. POSTKey複数設定できるって何の意味があるんですか? Q14. 削除Keyを忘れてしまいました削除フォームにも自動入力されてません Q15. [Upload][Cancel]の[Upload]が消えちゃいました Q16. IISでは動かないの? Q17. ANHTTPD,BlackJumboDogでも動きますか? Q18. タイトルの"Uploader" や "Now.. Testing.." と表示されている部分を書き換えたい Q19. リストの順番が投稿時間順ではありませんがなぜでしょうか? Q20. 設置したらサーバが重くなりました 何か改善する方法はありますか? Q21. 最大投稿容量はどれくらいまでいけますか? Q22. 容量制限があるサーバではどのような設定が望ましいのでしょうか? Q23. 拡張子MP4(大文字)を追加したのですが認識されません Q24. 拡張子MP4(大文字)をアップロードすると小文字になってしまう /////////////////////////////////////////////// Q1. これは何ですか? A1. 汎用ファイルアップローダです 気軽にブラウザからサーバにファイルをアップロードすることができます Q2. Perlですか?PHPですか? A2. Perlスクリプトです Perl5なら動くと思います PHPスクリプトではありません Q3. 設置できません(動きません,500エラーがでる) A3. 既に他のCGIプログラムを設置している場合はその設定を参考にしてみてください 主にPerlのPATHが違う場合やsuexecなのに設置ディレクトリのパーミッションが777などの場合が多いようです またログファイルやファイル保存ディレクトリは初回アクセス時に自動生成しますので FTP操作などでは作らない方が懸命です Q4. NoCGI.pm版とCGI.pm版どっち使えばいいんですか? A4. どっちでも構いませんが NoCGI.pm版の方がアップロード処理が多少速いみたいです Q5. 設定の 0とか 1とか って何ですか? A5. 基本的にONかOFFで設定するものは ON=1,OFF=0 で判別します Q6. フレームを使っているページなのでリンクをクリックしたら新しいウィンドウで開きたい A6. $set{'link_target'} の値に _blank を設定してください Q7. 設定はデフォルトのままじゃいけないの? A7. 基本的には管理者PASSの変更だけで構わないと思います 設定の重要度は(個人的には)上の高く 下の方は一部の方が使うような感じだと思います Q8. ユーザからkeyはあってる(はずな)のにファイルが削除できませんと言われる A8. 削除条件があってないと思います (´ー`)ノ~~ 実際やってみて消えなかったら連絡ください 031003以降には個別Cookieでの判定が追加されてます Q9. エラーメッセージが全く表示されません A9. 031003以前のものは仕様です...031003以降にはエラー表示機能がついています Q10.NoCGI.pm版でエラーメッセージにPOSTデータ不完全と大量に残っています A10.アップロード中にブラウザーの中止などを押すとそう記録されます POSTデータ不完全 = ユーザーアップロード中止 と考えてもらって構いません ちなみにNoCGI.pm版がアップロードミスが多いと言うわけではありません CGI.pm版はデコード方法が違いますのでこの手の検出ルーチンが無いだけです 他のアップローダにはない(記録するレベルではない)エラーメッセージの類なので いらないと思えば衛生上ログに記録しないようにしたほうがいいかもしません > 1004版だとスクリプト開いて POSTデータ不完全 で検索すると最後の方に > elsif($no == 108){ $flag = 1; $message = "POSTデータ不完全" 〜 > とありますので ここを > # elsif($no == 108){ $flag = 1; $message = "POSTデータ不完全" 〜 > と 先頭に # を追加すると > エラーメッセージには記録しなくなります。 Q11.管理モードに入るのが面倒です A11.管理人はまず削除フォームに管理人PASSを覚えさせてください Cookie&JavaScriptが使える場合は 次からはフォームにPASSが自動入力されますので 数字を入れるとファイル削除,管理ユーザID入れると管理画面に入れます Q12.赤い"*"って何? A12.適当な独自実装による暗号化ZIP検出のマーキングです もしかしたら誤判別してる場合もあるかもしれません Q13.POSTKey複数設定できるって何の意味があるんですか? A13.個人毎に発行すると誰があげてるか分かるかもしれません FTPのアカウントIDとPASSを1人に教えたら一ヵ月後には なぜかそのアカウントIDとPASSで複数クライアントが繋がってたという 話を知り合いから聞いたのでどのPOSTKeyでアップロードしてるか 記録してみると面白いかなと複数設定できるようにしてみました Q14.削除Keyを忘れてしまいました削除フォームにも自動入力されてません A14.投稿フォームに自動入力が残っている場合に限っては 1.削除フォームのNo,key共にいれずに[del]を押す(削除Cookieクリア) 2.投稿フォームの[Upload]を押す(削除Cookieコピー) 上記操作で投稿フォームのDelKeyがコピーされるハズです Q15.[Upload][Cancel]の[Upload]が消えちゃいました A15.文字コードをEUCにしようとしたのではないでしょうか? $set{'charset'} = euc-jp; にしても 文字コードがSHIFT-JISのままの場合 そのように表示されることがあります エディタやFTP転送でスクリプトの文字コードもEUCに変換してください Q16.IISでは動かないの? A16.全く動かないこともないですがこちらの確認した限りでは動作に不審な点があるためお勧めしません 特定の操作をするとプロセスが終わらなくなりCPU使用率が100%のままになります   その様なケースに陥った場合は [Webサイトのプロパティ] からアプリケーションの [アンロード] をしてください 2003/10/11現在 こちらでの一通りの動作を確認した環境は CGI.pm版/NoCGI.pm版共に   WinXPPro (Perl5.8.0) -> Apache1.3.28/2.0.47 ANHTTPD1.42k BlackJumboDog3.3.5 Redhat6.2 (Perl5.6.1) -> Apache1.3.27   FreeBSD4.8R(Perl5.005_3) -> Apache1.3.27/2.0.47 Solaris8 (Perl5.6.1) -> Apache1.3.27 となっています(いずれもi386,RedhatとFreeBSDはsuEXEC) 見れば分かるようにこちらとしては基本的にhttpdにはApache推奨です Q17.ANHTTPD,BlackJumboDogでも動きますか? A17.NoCGI.pm版/CGI.pm版共に問題なく動くと思いますが パフォーマンスの面で見ると Apache + NoCGI.pm版 がよさそうです Q18.タイトルの"Uploader" や "Now.. Testing.." と表示されている部分を書き換えたい A18.既にある文字を書き換える程度ならスクリプト内を該当文字で検索して置き換えてください HTMLヘッダなどは結構ヒアドキュメントで書いてる部分が多いので HTMLタグの知識があれば比較的簡単に書き換えられると思います Q19.リストの順番が投稿時間順ではありませんがなぜでしょうか? A19.リストに表示される投稿時間は POST開始時 の時間です ログが更新されるのは POST完了後 なのでログの時間表記の順番が多少入れ替わることがあります 個人的にはPOSTを始めた時間を投稿時間としたいのでこのような仕様になっています # というか余り気にしてませんでした どうしてもリストも時間順にしたいというのならばDATEを POST完了後 の時間にすればよいかと思います > $new[0] で検索をかけると > $new[0] = "$no<>$in{'addr'}<>$in{'time'}<>1\n"; > という行がありますので その行の上にでも > $in{'date'} = conv_date(time()); > という行を足すと DATE に記録される時間は POST完了後 の時間となります > # $in{'date'} = conv_date(time()); と既に書かれている行があるものを使っているのならば > 先頭の # を削除するだけで結構です Q20.設置したらサーバが重くなりました 何か改善する方法はありますか? A20.(;´Д`)あんま無理しないでください 普通の掲示板等に比べるとデータの出入力が多く行われるので 回線/CPU負荷は高めになるケースが多いと思います 利用者人数や保存件数/ファイルサイズなどを考慮して使っていただければよいかと思います Q21.最大投稿容量はどれくらいまでいけますか? A21.A1に書いたような位置づけだと思っていますので無茶な設定/使い方はしない方がよいかと 一応100MbpsLAN環境(A16のApache環境/Client-Win2000ProIE6)では1GB程度まで確認しましたが サーバ環境・クライアント環境・回線品質やその他使用環境に依存しますし また可能と実用は違いますのである程度の運用を持って設置者自身が判断してください 但しあまりに大きいサイズのファイルはFTPなど別プロトコルでやり取りしたほうがよさそうです Q22.容量制限があるサーバではどのような設定が望ましいのでしょうか? A22.結論的にはかなりの余裕を持たせた設定をするのが無難です というのも このスクリプトでは 1ファイルあたりの容量, 保持ログ(ファイル)数, 総容量 を設定できますが容量制限があるサーバにおいてはこれらの設定に注意する点があります [アップロード] ---> [ログ数/容量チェック] ---> [ログ落ち分は削除] という順序でスクリプトは処理をしているので 例えば50MBの制限が掛けられているアカウントで 1ファイルあたりの最大容量を 50MB に設定すると 1ファイル目に50MBをアップロードした場合 保持ログ数が1 でも 2ファイル目をアップロードできなくなってしまうことがあります これは アップロード完了時までに 1ファイル目が残っていることが原因となります 2ファイル目のアップロード開始と同時に1つ目を消せば問題が無くなる様にも見えますが アップロード完了時までそれが正常に終わるかどうかは分かりません しかしながらその様な仕様にしたい場合はスクリプトをある程度改変することで可能になります また複数ユーザーからの同時(並列)アップロード時も同様なので頻度が多いようなら 誰かがアップロード時にはアップロードさせないようにするなどの工夫をした方が良いかもしれません Q23.拡張子MP4(大文字)を追加したのですが認識されません Q24.拡張子MP4をアップロードすると小文字になってしまう A23.A24 拡張子フィルターの処理順序の関係で $set{'up_ext'} に MP4 を追加するのみでは認識されません これは元ファイル名拡張子を一旦小文字に変換した後に 拡張子変換を掛けていることに因ります. 以下の方法で回避することができます $set{'up_ext'} アップロードできる基本拡張子 に MP4 を追加 $set{'change_ext'} 拡張子変換 に mp4->MP4 を追加 ///////////////////////////////////////////////