제목 | ci4 파일 업로그 후 링크방법 | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 장까망 | 작성시각 | 2024/04/07 09:18:31 |
|
|||
안녕하세요, 초보 개발자입니다. CI4.4.6.
매뉴얼에 따라서 파일업로드도 구현했으며 파일 다운로드도 구현하였습니다. 하지만, 단순한 파일 링크가 안되서 문의드립니다.
개념적인 질문 드립니다. 파일을 업로드하면 /writable 디렉터리에 저장이 됩니다. 이 파일을 강제로 다운로드는 가능하지만 <audio> 코드의 <src="">로 링크는 동작하지 않습니다. 구글링을 통해서 /writable 디렉토리에는 직접적인 접근이 불가능하니 /public 폴더에 파일을 저장하라는 의견을 찾았습니다. 실제로 /public에 파일을 옮겨놓고 audio src="" 링크를 테스트하면 정상작동합니다. 진정 사용자의 파일 업로드는 /public 에 업데이트 해야 하나요?
두번째 질문 드립니다. 위에서 언급한 내용에 따라서 사용자의 파일 업로드를 기존 /writabel 에서 /public 으로 변경 하려고 합니다. 이때 영문매뉴얼을 따라서 아래의 내용을 보는데... $userfile = $this->request->getFile('userfile'); // form의 데이터 받기 $filepath = WRITEPATH . 'uploads/' . $userfile->store(); // 파일 저장
파일 저장 부분에서 여러 값을 변경해보아도 항상 기본 값인 WRITEPATH 에 저장이 됩니다. ( /writable 디렉토리 ) /public 에 저장하는 방법을 문의드립니다.
|
|||
다음글 | CI4 버전에서 DB세션 관련 (3) | ||
이전글 | ci3 사용중 query select 후 자동 comm... (2) | ||
kaido
/
2024/04/08 13:19:09 /
추천
0
|
장까망
/
2024/04/08 14:09:15 /
추천
0
좋은 답변 감사합니다. 'writable 해당 경로로 프록시를 별도로 따준 다음에' 라는 말을 이해할 수는 없었지만, 보여주신 ROOTPATH . 'public/uploads' 코드가 저에게 큰 도움이 되었습니다. 많은 것을 배웠습니다. |
1. writable 에 접근이 안되는건 ci 가 문제가 아니라 [nginx, apache] 같은 미들웨어가 접근을 못해서 생기는 문제입니다.
writable 해당 경로로 프록시를 별도로 따준 다음에 접근 시키면 접근 가능 합니다.
2.
제가 사용하는 멀티업로드 방식 입니다.
단일 업로드만 하실거면 변경해서 사용하시면 잘 적용 되실것입니다.