KENT-WEB サポートコーナー 過去ログ [ 0206 ]


記事No: 14310
投稿日: 2015/10/22(Thu) 08:36:12
タイトルClip Board の機能
ID情報: miyoko
投稿者: Yamamoto Miyoko
URLhttp://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
URLhttp://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
URLhttp://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
URLhttp://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
URLhttp://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 による変更を考えてみます。


[検索ページ] [掲示板]