13.ファイル操作
13.1.ファイルの読み書き
- サーバーにあるファイルへの書き込み、読み出しを行います。
- ファイル操作の手順
- ファイルのオープン fopen()
- 読み出しまたは書込み fgets()、fread()、fwrite()
- ファイルのクローズ fclose()
※)fgets() は、ファイルからデータを1行読み出します。
$handle = @fopen("../files/data.txt", "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
echo $buffer. "";
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
13.2.ファイルのアップロード
- ユーザーのパソコンにあるファイルを、サーバーにアップロードできます。
- アップロードは、次の2つのステップで行います。
ステップ1.パソコン内のファイルをサーバーにアップロードします。
このとき、ファイルは、サーバー内のある決まったディレクトリー(/tmp/)にアップロードされます。
ステップ2.ファイルを、/tmp/ディレクトリーから、保存用のディレクトリーに移動します。
(例)
ステップ1.パソコン内のファイルをサーバーにアップロードします。
(HTMLファイルです。)
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile" />
<input type="submit" value="アップロード" />
</form>
ステップ2.ファイルを、/tmp/ディレクトリーから、保存用のディレクトリーに移動します。
$up_file = $_FILES['upfile'];
$upload_dir = 'C:/xampp/htdocs/名前/uploads';
$upload_file = $upload_dir. '/'. basename($up_file['name']);
if (is_uploaded_file($up_file['tmp_name'])) { // xamppの場合
if(move_uploaded_file($up_file['tmp_name'], $upload_file)){
echo '成功!';
} else {
echo '失敗!';
}
}
備考: ステップ1の<input type="file" name="upfile" />の name=の名前("upfile")が、ステップ2の $_FILES で受け取る時の名前となります。