Laravel의 하위 폴더에 중복 파일을 방지하는 방법
P粉770375450
P粉770375450 2023-07-31 16:12:39
0
1
522
<p>여러 파일을 동시에 업로드할 수 있는 추가 보기를 만들었습니다. 파일이 업로드되면 '도면/부품번호/유형/파일명.확장자'와 유사한 형식으로 파일 경로가 표시됩니다. 동일한 확장자를 가진 파일이 없는지 확인하기 위해 '드로잉' 폴더를 확인하고 싶습니다. 이것을 달성하는 방법은 무엇입니까? </p> <올> <li>도면/부품 번호1/유형1/파일 이름1.pdf</li> <li>도면/부품번호2/유형2/파일 이름1.pdf</li> <li>도면/부품 번호1/유형3/파일 이름1.pdf</li> <li>도면/부품 번호1/파일 이름1.pdf</li>
  • 드로잉/파일 이름1.pdf 절대로 받아들여지지 않습니다.</li> </ol> <p>내 기능은 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">공개 함수 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); } } } }</pre> <p><br /></p>
  • P粉770375450
    P粉770375450

    모든 응답(1)
    P粉154228483

    동일한 파일이 다른 하위 디렉터리에 여러 번 업로드되는 것을 방지하려면 Laravel의 파일 시스템을 활용하고 업로드하기 전에 파일이 존재하는지 확인할 수 있습니다.

    File 파사드는 주어진 경로에 파일이 존재하는지 확인하는 데 사용할 수 있는 존재 메소드를 제공합니다.

    수정 방법은 다음과 같습니다.


    으아아아

    위 코드는 지정된 디렉터리에 파일이 없는 경우에만 업로드됩니다. 파일이 이미 존재하는 경우 '파일이 이미 존재합니다'라는 메시지와 함께 오류 응답이 반환됩니다.

    주의해야 할 한 가지는 getClientOriginalName() 메서드의 동작입니다. 클라이언트 시스템에서 파일의 원래 이름을 반환하므로, 다른 클라이언트의 파일 이름이 같은 경우 문제가 발생할 수 있습니다. 이것이 문제라면 업로드할 때 고유한 명명 규칙을 구현하는 것을 고려해 보세요.

    또한 파일 상단에서 필요한 클래스를 가져오고 필수 필드 누락이나 데이터베이스 삽입 실패와 같은 잠재적인 문제를 처리하도록 주의하세요.


    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿