ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp、http拡張クラス、ダウンロード機能はアップロードできず、ファイルのコンテンツのみがページに出力されます

thinkphp、http拡張クラス、ダウンロード機能はアップロードできず、ファイルのコンテンツのみがページに出力されます

WBOY
リリース: 2016-06-13 12:54:30
オリジナル
1046 人が閲覧しました

thinkphp、http拡張クラス、ダウンロード機能はダウンロードできません、ファイルの内容をページに出力するだけです
使い始めました、http拡張クラスにはファイルダウンロード機能が欲しいです
class IndexAction extends Action {

パブリック関数 download()
{

$file_dir = "D:/wamp/www/test/uploads/";
$name = 'aa.rar';

$filename = $file_dir.$name;
if (!empty($name)){
import("ORG.Net.Http");
$download=new Http();
$download->download($filename,$name);
}

}
}
ファイルは添付ファイルとしてダウンロードされず、ファイルの内容がページに直接出力されます
その後、彼の拡張クラスを使用せずに php ページを作成し、通常どおりダウンロードできます


$file= 'D:/wamp/www/test/uploads/admin.rar';

if(file_exists($file)) {
header('Content-Description: ファイル転送');
header('Content-Type: application/octet-stream');
header('Content-Disposition:attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('有効期限: 0');
header('キャッシュ制御: 必須再検証、事後チェック=0、事前チェック=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flash();
readfile($file);
終了;
}
?>
通常通りダウンロードできますが、このコードを上記のダウンロード関数に貼り付けると、http クラスと同じ結果が表示されます。つまり、添付ファイルとしてダウンロードされず、ファイルの内容が直接出力されます。ページ
私は困惑しており、なぜこのようになるのか説明を求めています。これまで HTTP を使用してきた人が私に教えてくれますが、私はこのレベルに合格できません。


-----解決策--------------------------------
明らかにこのページに入力しています。HTTP ヘッダー情報の前に他のコンテンツが出力されています。 UTF-8 BOM
である可能性が非常に高いです。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート