DX推進をサポートする情報サイト

 お問い合わせ 
プロフィール
技術者向け技術情報
TOP >技術者向け技術情報

【PHP】ファイルのアップロード

2022-07-24
 データベースのファイルテーブルより一覧を表示しファイル名のクリックよりダウンロードさせる利用例です。

<ダウンロードサンプルプログラム> file_upload.php
<?php

$upchk = $_POST["upchk"];

if($upchk == 1){
    $tmpfile = $_FILES['fname']['tmp_name'];
    $path = '/ファイルの保存先(フルパス)/';
    $filename = $path.$_FILES['fname']['name'];
    if (is_uploaded_file($tmpfile)) {
        if ( move_uploaded_file($tmpfile , $filename )) {
            $mess = $filename . "をアップロードしました。";
        } else {
            $mess = "ファイルをアップロードできません。";
        }
    } else {
        $mess = "ファイルが選択されていません。";
    } 
}

echo <<<EOF

ファイルのアップロード
<table bgcolor="#ADADAD" cellspacing="1">
	<tr bgcolor="white">
	<form method="POST" action="{$_SERVER["PHP_SELF"]}" enctype="multipart/form-data">
			<input type="hidden" value="1" name="upchk">
		<td>
		<td>
	</form>
	</tr>
</table>
<br>
{$mess}

EOF;				

?>	
											
<解説>
 $pathがない場合、動いているphpプログラムのフォルダーに保存されます。
よくある失敗は、保存するフォルダーのパーミッションが644のままで上書きが許可されないことがあります。 apacheが動いているユーザ、グループに合わせパーミッションを変更ください。