ファイルのアップロードを既存のWebページに追加しようとしています。Webページのファイルのアップロードは常に破損しています
アップロードするたびに、ファイルが破損することがあります。
ファイルハンドルにbinmode
を設定しました。また、のエンコードタイプをmultipart/formdata
に設定しています。
$article{upload_file_name} = $cgi->param('upFile');
$article{upload_file} = $cgi->upload('upFile');
if ($article{upload_file_name} ne "" or $article{upload_file_name} ne null) {
open(UPLOADS, ">$uploads_dir/$article{upload_file_name}")
or die "Could not open $uploads_dir/$article{upload_file_name}";
binmode UPLOADS;
while (<$article{upload_file}>) {
print UPLOADS;
}
close UPLOADS;
}
を次のように
私のコードがある私も、この
$article{upload_file} = $cgi->param('upFile');
if ($article{upload_file} ne "" or $article{upload_file} ne null) {
open(UPLOADS, ">$uploads_dir/$article{upload_file}")
or die "Could not open $uploads_dir/$article{upload_file}";
binmode UPLOADS;
while (<$article{upload_file}>) {
print UPLOADS;
}
close UPLOADS;
}
一つのこととして、スクリプトの先頭に 'use strict;'と 'use warnings 'all';'を追加する必要があります。 Perlには 'null 'はないので、' $ article {upload_file_name} ne null'はファイル名がリテラルテキスト "null"と等しいかどうかをチェックします。 – ThisSuitIsBlackNot
どこかで 'null'という名前のサブルーチンや定数がありますか?あなたの 'f($ article {upload_file_name} ne"または$ article {upload_file_name} ne null) 'はあなたが' '厳密に' 'を使わない限り構文エラーでなければなりません。 Perlには 'null'はありません。あなたは 'undef'を望みますが、' undef'を 'ne'でチェックすることはできません。実際、 'if($ article {upload_file_name}){...}'を実行するのは、空でないものや 'undef'がある限り、その値が真であるので十分です。 – simbabque
[undef](http://p3rl.org/undef)と[defined](http://p3rl.org/defined)を参照してください。 – choroba