ファイルのアップロードについて
PERLでファイルのアップロード機能を作成しています。
アップロードと言っても、サーバへのコピーではなく、
データベースへバイナリで格納しなければならないのです。
とりあえず2パターン作成してみたのですが、
OPEN関数を使ってやるとうまくいきません。
-----パターン1(OPEN関数使用)-------------
$query = new CGI;
$filename = $query->param('msds'); # ファイル名(フルパス)取得
if($filename ne "") {
open(ATT, $filename);# or die "Could not open atachment file:";
binmode(ATT);
while($bytesread = read(ATT, $buffer, $BUFSZ)){
$file .= $buffer;
# ファイルサイズ制限
$file_size ++;
if($file_size > 300){
exitError("ファイルサイズが大きすぎます。600KB 以下にして下さい。");
}
}
close(ATT);
}
-----パターン2(OPEN関数未使用)-------------
$query = new CGI;
$filename = $query->param('temp1'); # ファイル名(フルパス)取得
if($filename ne "") {
while($bytesread = read($filename, $buffer, $BUFSZ)){
$file .= $buffer;
# ファイルサイズ制限
$file_size ++;
if($file_size > 300){
exitError("ファイルサイズが大きすぎます。600KB 以下にして下さい。");
}
}
print "FILE DATA:" . $file . "<BR>";
}
パターン2でprint $fileをすると、ファイルの内容が
画面表示されるのですが、パターン1だと、While文に
入ってくれませんでした。
原因がさっぱりわかりません。。。
お分かりになる方が見えましたらご教授願います。