Yii 프레임워크는 PHP 언어 기반의 MVC 프레임워크입니다. 주요 특징은 빠른 개발, 단순성 및 효율성입니다. 웹 사이트 개발에서 파일 업로드 및 다운로드는 일반적인 기능입니다. 이 기사에서는 Yii 프레임워크에서 파일 업로드 및 다운로드를 구현하는 방법을 소개합니다.
1. 파일 업로드
1. 준비
파일을 업로드하기 전에 관련 구성을 수행해야 합니다. config/main.php 파일을 열고 다음 코드를 구성 요소에 추가합니다.
'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yiiwebJsonParser', 'multipart/form-data' => 'yiiwebMultipartFormDataParser', ], ], 'request' => [ 'enableCsrfCookie' => false, 'enableCsrfValidation' => false, 'parsers' => [ 'multipart/form-data' => 'yiiwebMultipartFormDataParser', ], ], 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ], ],
구성 요소에 두 개의 요청 매개 변수, 즉 파서 및 활성화CsrfValidation을 추가합니다. 파서는 요청의 파서입니다. multipart/form-data를 추가하면 파일 업로드가 허용됩니다. 활성화CsrfValidation은 CSRF 확인을 끄는 것을 의미합니다.
2. 파일 업로드 구현
컨트롤러에서 파일 업로드를 구현하면 양식 제출 또는 Ajax 업로드를 선택할 수 있습니다. 여기서는 양식 제출을 예로 들어보겠습니다.
public function actionUpload() { $uploadModel = new UploadForm(); if (Yii::$app->request->isPost) { $uploadModel->file = UploadedFile::getInstance($uploadModel, 'file'); if ($uploadModel->upload()) { // file is uploaded successfully return; } } return $this->render('upload', ['model' => $uploadModel]); }
actionUpload에서는 파일 업로드를 위한 모델 클래스 UploadForm이 인스턴스화됩니다. 동시에 Yii::$app->request->isPost를 사용하여 POST 요청인지 여부를 확인합니다. 그렇다면 Yii::$app->request->getInstance() 메서드는 다음과 같습니다. 파일 정보를 얻기 위해 사용되며, upload() 메소드를 호출하여 파일을 업로드합니다. 업로드가 성공하면 true를 반환하고, 실패하면 false를 반환합니다.
UploadForm 클래스의 구현 코드는 다음과 같습니다.
class UploadForm extends yiiaseModel { /** * @var UploadedFile file attribute */ public $file; /** * @return array the validation rules. */ public function rules() { return [ [['file'], 'file'], ]; } public function upload() { if ($this->validate()) { $filePath = 'uploads/' . $this->file->baseName . '.' . $this->file->extension; $this->file->saveAs($filePath); return true; } else { return false; } } }
UploadForm에서는 업로드된 파일을 저장하기 위한 공용 속성 파일이 설정됩니다. 동시에 규칙 방식을 설정하여 파일을 검증하고, 검증을 통과한 후 파일을 업로드합니다. 파일 업로드 경로는 $this->file->extension입니다.
3. 파일 다운로드 구현
파일 다운로드 기능은 구현하기가 비교적 간단합니다. 컨트롤러에서 직접 파일 스트림을 반환하기만 하면 됩니다.
public function actionDownload($file) { Yii::$app->response->sendFile($file); }
actionDownload에서 Yii::$app->response->sendFile() 메서드를 사용하여 파일 스트림을 반환합니다. 여기서 $file은 파일 경로입니다.
2. 요약
이 기사에서는 Yii 프레임워크에서 파일 업로드 및 다운로드 기능을 구현하는 방법을 소개합니다. 주로 파일 업로드 및 다운로드를 위한 관련 모델의 관련 구성, 작동 및 설계를 포함합니다. 본 글의 학습을 통해 Yii 프레임워크에서의 파일 작업에 대해 더 깊이 이해하고 익숙해지며 관련 기능을 보다 편리하고 빠르게 구현할 수 있습니다.
위 내용은 Yii 프레임워크에서 파일 업로드 및 다운로드: 파일 관련 작업 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!