필드가 너무 많은 양식이 있습니다. 다음과 같이 이러한 필드 중 하나는 : PHP에서 Session을 사용하여 파일을 업로드 할 수없는 이유는 무엇입니까?
<form action="go_to_preview.php" role="form" method="post" enctype="multipart/form-data">
<input type="file" name="equip_image" id="equip_image">
</form>
지금 파일
go_to_preview.php
의 목적은 라벨의 형태로 사용자에 의해 채워진 데이터를 표시하는 것입니다. 채워진 모든 데이터는 숨겨진 필드에도 포함됩니다. 이 양식에는 제출 단추가 하나 있습니다. 사용자가 기입 한 것이 무엇이든 찾으면 사용자는 파일
go_to_preview.php
에있는 제출 버튼을 클릭합니다. 사용자가 제출 버튼을 클릭하자마자 나는
$_POST
을 통해받은 데이터를 데이터베이스에 추가 할 것입니다. 이제 파일 컨트롤이 포함 된 페이지에서 사용자가 선택한 파일을 업로드 할 수 없습니다. 모든 것이 잘 진행
//go_to_preview.php
session_start();
$_SESSION['FILES'] = $_FILES;
//final.php
session_start();
$files_var = $_SESSION['FILES'];
//use $files_var
unset($_SESSION['FILES']);
지금까지 다음과 같이 내가 세션에 $_FILES
배열을 보내고있다 (숨겨진 필드에 데이터가 존재하는 배열입니다) $_POST
과 함께. 이제 양식을 제출하면 선택한 파일을 서버에 업로드해야합니다. 그것을 위해 나는 final.php 파일에 다음 논리를 썼습니다.
move_uploaded_file($_SESSION['FILES']['equip_image'], $target);
unset($_SESSION['FILES']);
이 함수는 제대로 실행되지만 서버로 파일이 업로드되지 않습니다. 누군가 나를 도와 줄 수 있습니까? 미리 감사드립니다. 내 의심의 여지가 분명히 당신도 내 문제의 명확한 아이디어를 얻기 위해 내 다음과 같은 질문을 참조 할 수 있습니다하지 않는 경우 : 당신이 세션에서 나중에 업로드 된 파일을 저장하려고하는 코드 순서에 따라 How to get the $_FILES array data as it is after form submission in following scenario?
@Flosculus : 명확한 아이디어를 얻으려면 내 질문을 참조하십시오. http://stackoverflow.com/questions/25752228/how-to-get-the-files-array-data-as-it-is-after- form-submission-in-following-sc – user2839497
미안 파일 데이터가'$ _FILES'에 실제로 저장되지 않았기 때문에 그 주석을 삭제했습니다. 그럼에도 불구하고 업로드 된 파일을 영구적으로 이동시키고 있습니까? 이것은 요청의 지속 기간 동안 만 일시적이기 때문에 생성되었습니다. – Flosculus
명확하게하기 위해 이미지를 세션으로 옮긴 다음 이후 요청에서 같은 세션에서 이미지를 검색하려고합니까? 문제는 PHP 세션이 매우 일시적 일 수 있으므로 자주 데이터가 손실된다는 것입니다. 비동기 업로드를 원할 경우 PHPResque와 같은 대기열을 사용하는 것이 좋습니다. 그렇게 할 수 없다면 최소한 이미지를 폴더로 옮기고 큐를 폴더처럼 처리하는 순진 구현을 사용하십시오. –