PHPでダウンロードリンクを作りたかった。
たとえば、ディレクトリに 2 つのファイルがある場合、download.php?id=1 または 2 などのダウンロード リンクを作成するにはどうすればよいですか。
では、download.php ファイル内のコードは何でしょうか。
誰かコード教えてください。
PHPでダウンロードリンクを作りたかった。
たとえば、ディレクトリに 2 つのファイルがある場合、download.php?id=1 または 2 などのダウンロード リンクを作成するにはどうすればよいですか。
では、download.php ファイル内のコードは何でしょうか。
誰かコード教えてください。
使用する$_GET
例:
<a href="download?id=1">link</a>
<?php
$id=$_GET['id'];
if(is_numeric($id)){
$filename = 'file.pdf'; // of course find the exact filename....
header( 'Pragma: public' ); // required
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Cache-Control: private', false ); // required for certain browsers
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment; filename="'. basename($filename) . '";' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Length: ' . filesize( $filename ) );
readfile( $filename );
exit;
}
?>
私はこのようなものを使用しました:
$fileId = $_GET['id'];
// do something with that id and return the file path / name
$path = ""; //server path / file name
header("Content-Type: application/octet-stream"); //
header("Content-Length: " . filesize($path));
header('Content-Disposition: attachment; filename='.$path);
readfile($path);
を使用してダウンロードをリンクできるようにするに?id=xx
は、データベース ID とファイル名を関連付けるデータベース テーブルが必要です。
PHP では、ユーザーから送信された ID を取得する方法は次のとおりです。
$id = (int)$_GET["id"];
/*ADD YOUR GET FILE NAME CODE HERE*/
header("Content-Disposition: attachment; filename=$filename");
header("Content-Size: ".filesize($filename));
readfile($filename); //Send file to user