#やりたいこと
PHPでファイルのアップロードとダウンロードを実現する。
アップロード
HTML側でinputタイプをfileに指定。
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type=submit value="ファイル送信">
</form>
選択されたファイルは受け取り側の$_FILESで受け取るので、この中身を参照して処理する。
・ファイル存在確認
isset($_FILES['image'])
・アップロードされたファイルと、一時保存されたファイルが一致するか確認
is_upload_file($_FILES['image']['tmp_name'])
・一時保存されたファイルを指定のフォルダへアップロード
move_upload_file($_FILES['image']['tmp_name'],"保存するファイル名")
おそらく一番シンプルな例だけど、ひとまずこの方法で実現した。
ダウンロード
ダウンロードするファイルパスと、ダウンロード時にデフォルトでつくファイル名の2つを指定する。
$filepath = "ダウンロードするファイルパス";
$filename = "ダウンロー時のファイル名";
header("content-type: application/octet-stream");
header("content-disposition: attachment; filename={$filename}");
header("content-length: ".filesize($filepath));
header("connection: close");
readfile($filepath);
他にも色々設定したり気をつけないといけないことはあるはずだけど、ひとまずこの方法で実現。