// 폼: enctype="multipart/form-data" 필수
// <input type="file" name="userfile">
public function upload()
{
$file = $this->request->getFile('userfile');
$rules = [
'userfile' => [
'rules' => [
'uploaded[userfile]', // 파일이 업로드되었는지
'max_size[userfile,2048]', // 최대 2MB
'ext_in[userfile,jpg,png,pdf]', // 허용 확장자
],
],
];
if (! $this->validate($rules)) {
return redirect()->back()->with('error', $this->validator->getError('userfile'));
}
$newName = $file->getRandomName(); // 랜덤 파일명 생성
$file->move(WRITEPATH . 'uploads/', $newName);
// 파일 정보 접근
$file->getClientName(); // 원본 파일명
$file->getClientExtension(); // 확장자
$file->getSize(); // 바이트 크기
$file->getMimeType(); // MIME 타입
}