ホームページ >バックエンド開発 >PHPチュートリアル >[神に聞く] 任意のファイル URL にアクセスし、任意のファイル名をユーザーに返してダウンロードしてもらいます??????
任意のファイル URL にアクセスし、任意のファイル名をユーザーに返してダウンロードします??????
ケース:
http://down1.020pidai.com/8935/ 実際にはサーバー内にファイルは 1 つだけあります。
000000.exe など
最も現実的な機能は次のとおりです:
ユーザーは、404 の位置ずれしたファイルが存在することなく、任意の名前にアクセスして任意の名前のファイルをダウンロードできます
http://down1.020pidai.com/8935 にアクセスしてください。 /111111.exe
サーバーはダウンロードのために 111111.exe をユーザーに返します。サーバー上でユーザーに表示されるファイル名は 000000.exe ではなく 111111.exe です。 /8935/222222.exe
サーバー ダウンロードするユーザーに 222222.exe を返します。サーバー上では 000000.exe ではなく 222222.exe が表示されます。
ディスカッションへの返信 (解決策)
ユーザーが入力する名前は関係ありません。ファイル 000000.exe をダウンロードするだけですか?
header("Content-Disposition:attachment; filename=000000.exe");
ユーザーがどのような名前を入力しても、ファイル 000000.exe のみがダウンロードされるということですか?
ユーザーの名前は関係ありませんファイル 000000.exe をダウンロードするだけですか?
私が望む効果は、サーバーにファイル 000000.exe が 1 つだけあるということです
ユーザーが www.url.com/down/ にアクセスしたとき111111.exe 000000.exe ではなく 111111.exe が保存されます
ユーザーが www.url.com/down/222222.exe にアクセスすると、000000.exe の代わりに 222222.exe が保存されます
urlrewrite を使用して、エントリファイル名を非表示にします
したがって、 http:// DOWN1.020pidai.com/8935/222222.exe/8935/222222.exe が path_info
/8935/222222.exe として入口ファイルに渡されます。性質: 添付ファイル名=$ファイル名"); $ファイル名
わかりますか?
urlrewrite を使用してエントリ ファイル名を非表示にします
したがって、http://down1.020pidai.com/8935/222222.exe の /8935/222222.exe が PATH_INFO としてエントリ ファイルに渡されます
および /8935/222222.exe
222222.exe は header("Content-Disposition:attachment; filename=$filename"); $filename
理解できますか?
コードは次のように書かれています??? コードには 000000.exe のダウンロードについては記載されていないようです
header("Content-Disposition:attachment; filename=$filename"); ;
これにアクセスするにはどうすればよいですか? 上記のコードは exe.php として保存され、ルート ディレクトリ www.url.com/exe.php
www.url.com/down/***
www.url.com /exe.php の静的書き換え ???
そうですか??
すべてのコード
新しい exe.php を作成します
コード:
header( "Content-Disposition:attachment; filename=$ filename"); $filename
?>
新しい .htaccess ファイルを作成します
コード:
RewriteBase /
RewriteRule ^index.php$ ? [L]
RewriteCon d %{REQUEST_FILENAME } !-d
RewriteRule . /index.php [L]
新しいディレクトリ 8935 を作成します
ディレクトリ 8935 の下に新しい .htaccess ファイルを作成します
コードは次のとおりです次のとおりです。 www.url.com/8935/好きなように名前を書きます.exe にアクセスできます
取得するファイルは次のとおりです:
名前を書きます .exe
iis の httpd.ini を取得するにはどうすればよいですか?可能ですか?
urlrewrite を使用してエントリ ファイル名を非表示にします
したがって、http://down1.020pidai.com/8935/222222.exe の /8935/222222.exe が PATH_INFO としてエントリ ファイルに渡されます
および /8935/222222.exe
8935 は実際の 000000.exe を表すことができます
222222.exe は header("Content-Disposition:attachment; filename=$filename"); $filename
理解できますか?
モデレータ iis は httpd.ini でこの効果を実現できますか?