인터넷 기술이 지속적으로 발전함에 따라 점점 더 많은 웹사이트와 애플리케이션에 파일 업로드 작업이 필요합니다. 이런 맥락에서, 뛰어난 PHP 프레임워크인 ThinkPHP6은 여러 파일을 업로드하기 위한 편리한 작업 방법도 제공합니다. 이 기사에서는 ThinkPHP6에서 여러 파일 업로드 작업을 수행하는 방법을 소개합니다.
1. 파일 업로드 관련 코드
ThinkPHP6에서는 파일 업로드 코드가 컨트롤러 파일에 있습니다. 다음은 단일 파일을 업로드하는 코드입니다.
public function upload() { //获取上传的文件对象 $file = request()->file('file'); //将上传的文件移动到指定目录 $info = $file->move('./uploads'); if ($info) { //上传成功,返回文件名和路径 return json(['code' => 0, 'msg' => '上传成功', 'data' => ['file_name' => $info->getFilename(), 'file_path' => '/uploads/'.$info->getSaveName()]]); } else { //上传失败,返回错误信息 return json(['code' => 1, 'msg' => $file->getError()]); } }
2. 여러 파일을 업로드하는 단계
다음으로 ThinkPHP6에서 여러 파일을 업로드하는 방법을 소개하겠습니다. 구체적인 단계는 다음과 같습니다.
1. 프런트 엔드 인터페이스에 여러 파일 업로드 상자를 추가하고 이름 속성을 동일한 값으로 설정합니다.
<form enctype="multipart/form-data" method="post" action="#"> <input type="file" name="files[]" multiple> <button type="submit">上传</button> </form>
2. 컨트롤러 파일에 여러 파일을 업로드하도록 코드를 설정합니다.
public function upload() { $files = request()->file('files'); $data = array(); foreach ($files as $file) { $info = $file->validate(['size' => 1024*1024*10, 'ext' => 'jpg,png,gif'])->move('./uploads'); if ($info) { $data[] = ['file_name' => $info->getFilename(), 'file_path' => '/uploads/'.$info->getSaveName()]; } else { return json(['code' => 1, 'msg' => $file->getError()]); } } return json(['code' => 0, 'msg' => '上传成功', 'data' => $data]); }
그중 request()->file('files') 는 업로드된 여러 파일 객체를 얻을 수 있으며, 루프 순회를 통해 업로드된 각 파일의 작업을 처리할 수 있습니다.
3. 여러 파일 업로드를 위한 매개변수 설정
여러 파일 업로드의 안전성과 적법성을 보장하기 위해 업로드되는 파일의 크기와 유형 등을 제한하는 일부 매개변수를 설정할 수도 있습니다. 예:
1. 단일 파일의 크기를 제한합니다.
이 문서의 샘플 코드에서는 verify(['size' => 1024102410, 'ext' => 'jpg, png,gif'] ) 업로드된 단일 파일의 크기를 10M를 초과하지 않도록 설정합니다.
2. 파일 형식 제한
validate() 함수에서 ext를 설정하여 업로드된 파일 형식을 제한할 수도 있습니다(예: 'ext' => 'jpg, png, gif'
3. 업로드된 파일 이름 바꾸기).
업로드된 파일의 이름은$info = $file->move('./uploads', md5(uniqid()));
위 내용은 ThinkPHP6에서 여러 파일 업로드 작업을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!