ホームページ >バックエンド開発 >PHPチュートリアル >[神に聞く] 任意のファイル URL にアクセスし、任意のファイル名をユーザーに返してダウンロードしてもらいます??????

[神に聞く] 任意のファイル URL にアクセスし、任意のファイル名をユーザーに返してダウンロードしてもらいます??????

WBOY
WBOYオリジナル
2016-06-23 14:25:57970ブラウズ

任意のファイル 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 のみがダウンロードされるということですか?


header("Content-Disposition:attachment; filename=000000.exe");

あなたのコードは、000000.exe をダウンロードするために任意の URL にアクセスすることですが、受信したファイル名は 000000.exe です


ユーザーの名前は関係ありませんファイル 000000.exe をダウンロードするだけですか?

header("Content-Disposition:attachment; filename=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

8935 は実際の 000000.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]

RewriteCond %{REQUEST_FILENAME} !-f

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 でこの効果を実現できますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。