「8asd98asd9as7d98asd9.file」のようなすべてのファイルを保存し、mysqlデータベースから「実際の」ファイル名を取得します:id(INT)AI PK、pathOnServer TEXT NOT NULL、realFilename VARCHAR(200)NOTNULL。
「www.website.com/getFile?id=2」のようなファイルにアクセスしてファイルをダウンロードし、名前を「realFilename」に変更するスクリプトが必要です。
これはどのように行うことができますか?
私はこのコードがあなたが探しているトリックをするだろうと信じています
<?php
if(!is_numeric($_GET['id'])) { // We validate parameter
echo 'Wrong parameter';
exit();
}
$oDb = new mysqli("ip","user","pass","databasename"); // Connecting to database
if($oDb->connect_errno) { // Check for an error
echo 'Error';
exit();
}
$oResult = $oDb->query('SELECT `pathOnServer`, `realFilename`
FROM --tablename--
WHERE id = '.(int)$_GET['id'].'
LIMIT 1'); // make query
if($oResult->num_rows != 1) {
echo 'No file found';
exit();
}
$oQuery = $oResult->fetch_object();
header('Content-disposition: attachment; filename='.$oQuery->realFilename); // put special headers
readfile($oQuery->pathOnServer.$oQuery->id); // put the file
?>
filesizeでヘッダーを追加することもできます。それがあなたを助けることを願っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加