このコードを使うとエラーが出ます。PHP4の環境では問題なかったのですが、PHP5にしたとたんエラーが出てコードが動きません。このコードは指定のファイルをブラウザでダウンンロードできるスクリプトです。
プログラミング素人なのでどう直したらま動くようになりますか???
#!/usr/bin/perl -wT
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);
my $files_location;
my $ID;
my @fileholder;
$files_location = "/home/user/public_html/static/file";
$ID = param('ID');
if ($ID eq '') {
print "Content-type: text/html\n\n";
print "You must specify a file to download.";
} else {
open(DLFILE, "<$files_location/$ID") || Error('open', 'file');
@fileholder = <DLFILE>;
close (DLFILE) || Error ('close', 'file');
open (LOG, ">>//home/user/public_html/dl.log") || Error('open', 'file');
print LOG "$ID\n";
close (LOG);
print "Content-Type:application/x-download\n";
print "Content-Disposition:attachment;filename=$ID\n\n";
print @fileholder
}
sub Error {
print "Content-type: text/html\n\n";
print "The server can't $_[0] the $_[1]: $! \n";
exit;
}
No.3ベストアンサー
- 回答日時:
これぐらいなら、自動でなく人力でコンバートできるでしょ。
変換表は
http://www.cs.wcupa.edu/~rkline/perl2php/
でみつけました。
ちゃちゃと書き換えると
<?php
/*
#!/usr/bin/perl -wT
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);
my $files_location;
my $ID;
my @fileholder;
*/
$files_location = "/home/user/public_html/static/file";
if ($ID == '') {
header("Content-type:text/html");
print "You must specify a file to download.";
}else {
$DLFILE = fopen("$files_location" . "/" . $ID, "r");
if($DLFILE){
$i=0;
while (!feof($DLFILE)) {
$fileholder[$i] = fgets($DLFILE);
i++;
}
fclose($DLFILE);
}else {
Error('open', 'file')
}
$LOG = fopen("//home/user/public_html/dl.log", "a+");
if($LOG){
fwrite($LOG,"$ID" . "\n");
fclose ($LOG);
}else{
Error('open', 'file');
}
header("Content-Type:application/x-download");
header("Content-Disposition:attachment;filename=" . $ID);
for($i=0;$i<count($fileholder);i++){
print $fileholder[$i];
}
}
function Error($_[0],$_[1]){
header("Content-type:text/html");
print "The server can't" . $_[0] . " the " . $_[1] . " !\n";
die;
}
?>
こんな感じになるので、デバッグしてね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csobjというタグについて
-
reuterの記事をbeautiful.soup....
-
phpの正規表現でstyle="●●"を削...
-
HTML・特定のタグの使用可能か...
-
print "<img src=\\"0.jpg\\/>\...
-
変数にHTMLを代入する場合
-
objective-cでのHTMLタグ表示に...
-
PHPの正規表現でHTMLタグの内容...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
テキストファイルから改行コー...
-
エスケープ文字の復帰(¥r)と...
-
文字の入力で横バー上段、中断...
-
グレープシティのSPREAD...
-
エクセルのCOUNTIFが正しくカウ...
-
UTF8メールがLotus Notesで文字...
-
jsp 改行コードで改行させて表...
-
ExcelVBAでメールを作成してメ...
-
C++で空Enterの入力を判...
-
c# string型の変数に、ダブルク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
JSFタグのfタグとは
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
phpの正規表現でstyle="●●"を削...
-
Nvuで作成したhtmlをコピペして...
-
正規表現で指定範囲すべて除去...
-
正規表現でタグの置換をしたい...
-
Strutsでリンクを動的に生成したい
-
自分でタグ打ちして作ったペー...
-
php正規表現 相対パス→絶対パス
-
ASP.NET(C#)とhtmlの#include
-
PHPの正規表現でHTMLタグの内容...
-
csobjというタグについて
-
VBSでのhtmlタグ要素名の置換
-
htmlタグ間の特定文字置換
-
URLの連続アクセス
-
HTMLファイルの書き換え
-
htmlspecialchars関数を使いな...
-
javascriptの正規表現でhtmlか...
おすすめ情報