질문을 삭제하지 말아주세요.!
 
1
0
-1

라라벨 5.3으로 작업 중인데 디렉토리 생성에 문제가 좀 생겨서 질문 남깁니다. 아래와 같이 디렉토리를 만들려고 합니다. public/storage/uploads/카테고리id

use Storage; 
public function store(Request $req){ 
    $cat_id = $req->cat_id; // 카테고리 id 
    
    // 카테고리 명으로 디렉토리 생성
    Storage::makeDirectory(public_path('storage/uploads'.$cat_id)); 
} 

(public / storage 경로는 심볼릭 링크로 storage/app/public 으로 연결해놓았습니다.)

이렇게 해놓으면 기대하기는 public / storage / uploads / 1 이런 식으로 되기를 바라는데 결과는 storage / var / www / html / ... / ... / ... / public / storage / uploads / 1 로 나옵니다.

로컬에서 개발 환경은 라라캐스트에 나오는 도커 컴포저로 컨테이너 구성해서 작업 중입니다. (혹시나해서 개발 서버에 올려서 테스트 해봐도 역시 마찬가지네요) 어디가 문제일까요?

그리고 파일 업로드 시 $path = $req->file('file1')->store('file') 처럼 하면 $path는 업로드된 파일의 절대경로가 되나요?

위의 방식으로 업로드하는 것과 Storage::put('file.jpg', $contents)와 같이 하는 방식이 어떻게 다른가요? 예제를 따라 해보긴 하는데 잘 안되서 답답하네요 ㅠㅠ 한가지 더 질문 드립니다. 라라벨 관련 문서들을 보면 디렉토리 생성하는데 File::MakeDirectory(~) 로 하는데 5.3 공식 문서에는 Storage::makeDirectory()로 하라고 하네요. 어떤 방식이 더 효율적인가요?

    CommentAdd your comment...

    2 answers

    1.  
      2
      1
      0

      Storage 는 기준 디렉터리가 storage 입니다. File을 이용해보세요. 

      1. 이덕형

        감사합니다. 바로 답변 남겨주셨네요 ^^/ 한번 해보겠습니다.

      CommentAdd your comment...
    2.  
      1
      0
      -1

      참고로 코드 전체를 살펴볼 수 있는 링크를 남깁니다.

      https://github.com/Daworks/history/blob/dev/app/Http/Controllers/adminController.php#L205

       

        CommentAdd your comment...