라라벨에서 파일 업로드 기능을 구현하는 방법은?
_____A1: 먼저, HTML 폼에서 `enctype="multipart/form-data"` 속성을 추가하고, 파일 입력 필드 ``를 생성해야 합니다. 그리고 라라벨 컨트롤러에서 요청을 받아 처리하면 됩니다.
---
Q2: 업로드된 파일을 컨트롤러에서 어떻게 받을 수 있나요?
A2: `Request` 객체의 `file()` 메소드를 사용합니다. 예를 들어, `$file = $request->file('file');` 로 업로드된 파일을 받을 수 있습니다.
---
Q3: 파일 업로드 시 서버에 저장하려면 어떻게 하나요?
A3: 받은 파일 객체에서 `store()`, `storeAs()` 메소드를 이용합니다.
예:
```php
$path = $request->file('file')->store('uploads');
```
`storage/app/uploads` 경로에 저장됩니다.
---
Q4: 저장 위치를 `public` 디렉토리나 특정 폴더로 설정하려면?
A4: 디스크 이름을 지정하면 됩니다. 기본 설정은 `storage/app` 입니다.
예:
```php
$path = $request->file('file')->store('uploads', 'public');
```
이 경우 `storage/app/public/uploads`에 저장되며, `php artisan storage:link` 명령어로 `public/storage`와 연결해 웹 접근이 가능합니다.
---
Q5: 저장할 파일 이름을 직접 지정할 수 있나요?
A5: 네, `storeAs()` 메소드를 사용합니다.
예:
```php
$filename = 'myfile_' . time() . '.' . $request->file('file')->extension();
$path = $request->file('file')->storeAs('uploads', $filename, 'public');
```
---
Q6: 업로드 시 파일 확장자나 크기 같은 유효성 검사는 어떻게 하나요?
A6: 라라벨의 `validate()` 메서드를 활용합니다.
예:
```php
$request->validate([
'file' => 'required|file|mimes:jpg,jpeg,png,pdf|max:2048',
]);
```
위는 JPG, PNG, PDF 파일 형식만 허용하고 최대 크기를 2MB로 제한합니다.
Q7: 파일 업로드 후 저장 경로를 어떻게 반환하나요?
A7: `store()` 나 `storeAs()` 메소드가 반환하는 경로를 반환하면 됩니다. 이 경로는 저장 디렉토리 하위 경로입니다. 필요 시 `asset()` 나 `Storage::url()` 로 전체 URL을 만들 수 있습니다.
예:
```php
$url = Storage::url($path);
```
---
Q8: 사용자별 디렉토리 또는 날짜별 폴더에 업로드 폴더를 구분할 수 있나요?
A8: 네, 폴더명을 동적으로 생성해 사용하면 됩니다. 예:
```php
$folder = 'uploads/' . auth()->id() . '/' . date('Y-m-d');
$path = $request->file('file')->store($folder, 'public');
```
---
Q9: 다중 파일 업로드는 어떻게 처리하나요?
A9: 파일 입력 필드의 이름을 배열로 지정하고, 컨트롤러에서 반복문으로 처리합니다.
예:
```html
```
```php
foreach ($request->file('files') as $file) {
$file->store('uploads', 'public');
}
```
---
Q10: 업로드된 파일을 삭제하려면?
A10: `Storage::delete()` 메소드를 사용합니다.
예:
```php
Storage::disk('public')->delete('uploads/myfile.jpg');
```
---
종합 팁:
- `php artisan storage:link` 명령어로 storage/public을 public/storage와 연결해 웹에서 파일 접근 가능
- `config/filesystems.php`에서 디스크 설정 확인
- 유효성 검사를 반드시 하여 보안과 안정성을 확보
이렇게 하면 라라벨에서 안정적이고 편리한 파일 업로드 기능을 구현할 수 있습니다.
작성자:
ㅁㅁ [비회원]
| 작성일자: 1년 전
2024-08-26 08:17:06
조회수: 155 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 155 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.