- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perl BBS掲示板 サーバ側のファイル削除)
Perl BBS掲示板 サーバ側のファイル削除
このQ&Aのポイント
- Perl BBS掲示板でサーバ側のファイルを削除する方法を教えてください。
- 削除したいテキストファイルの行は削除できるが、画像ファイルが残ってしまう問題があります。どうすれば画像ファイルも削除できますか?
- 削除ボタンを押すと、指定行のテキストファイルは削除されますが、画像ファイルが残ってしまいます。どうすれば画像ファイルも削除できるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>サーバー側に残っているファイルも削除させたいのです。 sub deleteImg の中で my ($NO,$tm,$NAME,$TITLE,$TEXT,$imgname) = split(/,/, $DATA[$_[0]]); $filename = $DIR . $imgname; の2行で「消すべき画像のファイル名」を作成して if(-e $imgname) { のif分で、そのファイル名のファイルが存在しているか確認して、存在しているなら unlink $filename; で、サーバー上からそのファイルを削除しようとしているけど、判定するファイル名が間違っているのでバグっている。 if(-e $imgname) { ではなくて if(-e $filename) { なのではないか? $imgnameには「ファイル名だけ」しか入ってないから、if文は「そのファイルは無い」と判断しちゃうと思う。
お礼
ありがとうございました。 なぜか、拡張子が読み取れていなかったみたいで、 sub deleteImg { my @delete = split(/,/, $DATA[$_[0]]); @arry=(".gif",".png",".jpg"); for ( @arry ) { $filename = $DIR . $delete[0] . $_; if(-e $filename) { unlink $filename; } } } とりあえずこのように記述することで、解決できました
補足
ご回答ありがとうございます 初めそうではないかと思い、filenameでしてたのですが、うまくいかなかったです・・・ ファイル名が間違っているということは そもそもフォルダ自体間違ってる可能性もあるということでしょうか? $DIR = サーバーのフルパスをしてます。