여러 파일을 동시에 업로드할 수 있는 추가 보기를 만들었습니다. 파일이 업로드되면 '도면/부품번호/유형/파일명.확장자'와 유사한 형식으로 파일 경로가 표시됩니다. 동일한 확장자를 가진 파일이 없는지 확인하기 위해 '드로잉' 폴더를 확인하고 싶습니다. 이것을 달성하는 방법은 무엇입니까?
<올>내 기능은 다음과 같습니다.
공개 함수 AddNewPart(요청 $request) { if (array_key_exists('드로잉파일',$data)) { foreach($request->file('드로잉파일') as $key=>$file) { if ($data['fileupload_ID'][$key]==NULL) { $extension=$file->getClientOriginalExtension(); $file_name2 = $file->getClientOriginalName(); $filepath='도면/'.$data['PartNumber'].'/'.$data['Type'][$key].'/'.$file_name2; $file->move(public_path('드로잉/'.$data['PartNumber'].'/'.$data['Type'][$key].'/'), $file_name2); $DocumentData2=array('유형'=>$data['유형'][$key],'fcontent'=>$file_name2,'condpartno'=>$data['PartNumber'],'fname'= >$파일 경로, '드로잉번호'=>$data['드로잉번호'][$key],'DocumentType'=>$data['Type'][$key]); DB::table('fileupload')->insert($DocumentData2); } } } }
동일한 파일이 다른 하위 디렉터리에 여러 번 업로드되는 것을 방지하려면 Laravel의 파일 시스템을 활용하고 업로드하기 전에 파일이 존재하는지 확인할 수 있습니다.
File 파사드는 주어진 경로에 파일이 존재하는지 확인하는 데 사용할 수 있는 존재 메소드를 제공합니다.
수정 방법은 다음과 같습니다.
으아아아위 코드는 지정된 디렉터리에 파일이 없는 경우에만 업로드됩니다. 파일이 이미 존재하는 경우 '파일이 이미 존재합니다'라는 메시지와 함께 오류 응답이 반환됩니다.
주의해야 할 한 가지는 getClientOriginalName() 메서드의 동작입니다. 클라이언트 시스템에서 파일의 원래 이름을 반환하므로, 다른 클라이언트의 파일 이름이 같은 경우 문제가 발생할 수 있습니다. 이것이 문제라면 업로드할 때 고유한 명명 규칙을 구현하는 것을 고려해 보세요.
또한 파일 상단에서 필요한 클래스를 가져오고 필수 필드 누락이나 데이터베이스 삽입 실패와 같은 잠재적인 문제를 처리하도록 주의하세요.