記事No | : 14310 |
投稿日 | : 2015/10/22(Thu) 08:36:12 |
タイトル | : Clip Board の機能 |
ID情報 | : miyoko |
投稿者 | : Yamamoto Miyoko |
URL | : http://www.lycaste-net.com/hokan/clipbbs.cgi |
CGI の勉強を始めました。Clip Board V.5 を設置しました。
使い方を試しています。設定はすべて標準のままで変更していません。各種ファイルをアップするとPowerPoint のファイルのみがアップできません。
pptファイルはms-offficeで問題なく開きます。
何かやり方に間違いがあるのでしょうか。
気になるのはcheck.cgiを実行するとmessage.html NG となります。それと画像以外のファイルをアップすると 添付:(**KB)と表示されリンクの部分に何も表示されません。添付:の右側の余白をクリックすると所定のファイルが起動します。
記事No | : 14314 |
投稿日 | : 2015/10/22(Thu) 13:19:07 |
タイトル | : Re: Clip Board の機能 |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/fsw/wiki.cgi |
>画像以外のファイルをアップすると 添付:(**KB)と表示されリンクの部分に何も表示されません。
これはバグですね。$cf{ico_clip}で指定したアイコンファイルを表示するようになっているのですが、
$cf{ico_clip}がどこでも指定されていないようです。
添付ファイルに使えそうな画像ファイルも見当たらないようですが、とりあえず
./cmn/edit.pngを使うなら
init.cgiの
$cf{cmnurl} = './cmn';
より下に
$cf{ico_clip} = "$cf{cmnurl}/edit.png";
を追加してみてください。
>気になるのはcheck.cgiを実行するとmessage.html NG となります。
これもcheck.cgiのバグみたいですね。
気になるなら、56行目の
foreach (qw(bbs find note error message)) {
foreach (qw(bbs find note error mesg)) {
と修正してください。
>PowerPoint のファイルのみがアップできません。
どういうメッセージが出ますか?
記事No | : 14318 |
投稿日 | : 2015/10/22(Thu) 17:20:36 |
タイトル | : Re^2: Clip Board の機能 |
ID情報 | : miyoko |
投稿者 | : Yamamoto Miyoko |
ご助言ありがとうございます。
> >PowerPoint のファイルのみがアップできません。
> どういうメッセージが出ますか?
Error! このファイルは取扱いできません。
と表示されます。
前記2件のバグは何とかなるとしてもパワーポイントがアップできないと使えません。
記事No | : 14319 |
投稿日 | : 2015/10/22(Thu) 17:45:07 |
タイトル | : Re^3: Clip Board の機能 |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/fsw/wiki.cgi |
init.cgiの135行目あたり
$cf{ok_ppt} = 1; # POWER POINT
の設定はどうなっていますか。
記事No | : 14320 |
投稿日 | : 2015/10/22(Thu) 19:08:54 |
タイトル | : Re^4: Clip Board の機能 |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/fsw/wiki.cgi |
アップロードの前に拡張子と実際のファイルのmimeタイプが同じかチェックして
違っているとエラーを出しているようです。
pptファイルの場合は
/^application\/(vnd\.)?ms-?powerpoint$/i
という正規表現でチェックしています。
ウチのローカル環境でもpptファイルを添付しようとすると、
「このファイルは取り扱いできません」となってしまったので、
mimeタイプを調べてみると
application/octet-stream
となっていました。
.xls .docファイルも同様にoctet-stream
となってアップロードできませんでした。
セキュリティ上の問題があるかもしれませんが、regist.cgi548行目あたりの
elsif ($ext eq '.ppt' && $cf{ok_ppt} && $mime =~ /^application\/(vnd\.)?ms-?powerpoint$/i) { $flg++; }
を
elsif ($ext eq '.ppt' && $cf{ok_ppt} ) { $flg++; }
と拡張子のチェックだけにするとアップロードは出来ると思いますが。
記事No | : 14322 |
投稿日 | : 2015/10/23(Fri) 08:24:56 |
タイトル | : Re^5: Clip Board の機能 |
ID情報 | : miyoko |
投稿者 | : Yamamoto Miyoko |
> .xls .docファイルも同様にoctet-stream
> となってアップロードできませんでした。
WEB上では .xls .doc いずれもアップできます。
> elsif ($ext eq '.ppt' && $cf{ok_ppt} ) { $flg++; }
>
変更することでアップロードできました。
ところで
$mime =~ /^application\/(vnd\.)?ms-?word$/i)
$mime =~ /^application\/(vnd\.)?ms-?powerpoint$/i)
同じ記述なのに何故 .ppt がアップできないのか疑問です。
記事No | : 14323 |
投稿日 | : 2015/10/23(Fri) 16:17:22 |
タイトル | : Re^6: Clip Board の機能 |
ID情報 | : hirayama |
投稿者 | : hirayama |
URL | : http://shade-search.com/sts/fsw/wiki.cgi |
>同じ記述なのに何故 .ppt がアップできないのか疑問です。
init.cgiで$cf{ok_ppt} = 1; に設定されているなら、
.pptファイルから得られるmimeタイプが
$mime =~ /^application\/(vnd\.)?ms-?powerpoint$/i
にマッチしないという事だと思います。
アップできる.xls .docはマッチしているということでしょう。
どういうmimeタイプが取得されているかは
regist.cgiの
sub check_upl 内の
my $mime = $cgi->param_mime('upfile');
の下に
open(TST,">>./mimetest.txt");
print TST "\$ext=$ext \$mime=$mime\n";
close(TST);
を追加するとわかると思います。
clipbbs内のmimetest.txtに拡張子とmimeタイプが保存されます。
記事No | : 14324 |
投稿日 | : 2015/10/24(Sat) 09:03:34 |
タイトル | : Re^7: Clip Board の機能 |
ID情報 | : miyoko |
投稿者 | : Yamamoto Miyoko |
ありがとうございます。初心ゆえ間違っているかもしれませんが
サーバー側の mime type 調査と
.htaccess による変更を考えてみます。