Laravel 5.2
을 사용하여 최대 10 개의 이미지를 선택하고 미리보기를 표시 한 다음 이미지를 추가하거나 업로드하지 않으려는 이미지를 추가 할 수 있도록 업로드 양식을 작성 중입니다.Laravel을 사용하여 파일을 임시 저장하는 방법은 무엇입니까?
미리보기의 정렬 및 제거는 자바 스크립트를 사용하여 쉽게 수행 할 수 있지만 그 외에는 나머지 작업을 올바르게 수행하는 방법을 찾는 데 어려움을 겪고 있습니다. 필자의 원래 아이디어는 입력에서 js 파일 배열을 가져 와서 다른 배열로 옮기고 사용자가 이미지 미리보기와 상호 작용하면을 사용하여 표시됩니다. 그는 양식을 제출하면
는 I는 FormData
객체를 생성 입력의 현재 파일을 제거하고 유효한 모든 것들을 추가합니다 :
var formdata = new FormData(document.getElementById('upload-form'));
if (formdata.has('pic[]') && validFiles.length) {
formdata.delete("pic[]");
var len = validFiles.length;
for (i = 0; i < len; i++) {
formdata.append("pic[]", validFiles[i]);
}
}
당신이 당신의 방법은 주위에 이미이 방법을 볼 수 있습니다 JS 알고있는 경우를 이 때 심각한 문제가 거꾸로 compatibillity의 FormData.delete(..)
, .append(..)
및 .has(..)
방법은 (거의 크롬 50 이하 또는 IE. 포함) 이전 버전의 브라우저
좋아 스크랩 그 생각에 의해 지원되지 않기 때문에. 내 두 번째 생각은 다음을 수행하는 것이 었습니다 :
- 사용자가 추가 할 이미지를 선택
- 업로드 이미지
- 사용자가 미리보기를 사용하자 아약스를 사용하여 어딘가에 Laravel
- 반환 이미지 미리보기를 사용하여 일시적으로 저장했다 파일을 재정리하거나 파일을 제거하고 그가하는 일을 추적하십시오.
- 양식이 제출되면 다른 모든 정보를 가져 와서 어떤 파일을 영원히 저장할 것인지 그리고 어떤 파일을 삭제하고 저장할지 결정하십시오.
이제는 어떻게하는지 잘 모르겠습니다. 나는이 이미지들을위한 tmp 디렉토리를 가지고 있고, 사용자 세션과 연관된 디렉토리의 이름이 될 어떤 종류의 문자열을 생성하고 거기에 파일을 저장하고 Session
을 사용하여 디렉토리 이름을 저장한다고 생각했다.
이 문제는 Session
에 전역 시간 제한이있는 것으로 보이며 15 분이 지나면 만료되도록 설정할 수 없습니다. 내가 보는 또 다른 문제는 Session
만료시 코드를 실행할 수있는 방법을 찾을 수 없으므로 Session
이 만료되고 사용자가 이미지를 업로드하지 않기로 결정했다면 영원히 서버에 남아있게됩니다.
그렇다면 Laravel에서 임시 파일 저장을 수행하는 적절한 방법은 무엇입니까? 여기 잘못된 방향으로 가고 있으며 내가하려고하는 것을하기위한 더 좋은 방법을 볼 수 있습니까?
미리 조언 해 주셔서 감사합니다.