PHP(Laravel)でアップロードしたファイルをそのまま読み込む

ストレージに一時保存したりせずそのまま中身を読み込みたい。



<form class="login-form" method="post" action="/upload/file" enctype="multipart/form-data">
    @csrf
    <label class="uploader" for="file_upload">
      ファイルを選択して下さい
      <input type="file" name="file" id="file_upload">
    </label>
    <button type="submit" id="submit"></button>
</form>

/**
 * ファイルアップロード処理1
 */
public function upload(Request $request)
{
  $file = $request->file('file');
  $file_path = $file->path($file);
  $fp = fopen($file_path, 'r');
  while (!feof($fp)) {
    $txt = fgets($fp);
    print($txt);
  }

  return view('upload');
}

/**
 * ファイルアップロード処理2
 */
public function upload(Request $request)
{
  $file = $request->file('file');
  $file_path = $file->path($file);
  $file = new \SplFileObject($file_path);
  $file->setFlags(\SplFileObject::READ_CSV);

  foreach ($file as $row)
  {
      print($row);
  }
  return view('upload');
}

見ればわかるので説明はいいか...


2019年6月11日火曜日