개발 Q&A

제목 php ssesion upload progress 세션 값이 비어있습니다.
카테고리 PHP
글쓴이 kuro 작성시각 2017/05/26 14:11:36
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 15742   RSS

안녕하세요 ! 초보 개발자 입니다.

업로드 프로그레스 바를 만들고 싶습니다.

현재 제가 만들기 위해 찾은 방법은 ajax로 ssesion upload progress 이용 하는 것입니다.

<form action="upload.php" method="POST" enctype="multipart/form-data">
   <input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="123" />
   <input type="file" name="file1" />
   <input type="submit" />
</form>
<?php
session_start();
$key = ini_get("session.upload_progress.prefix") . $_POST[ini_get("session.upload_progress.name")];
var_dump($_SESSION[$key]);
?>
function imageSubmit () {
        var xhr = new XMLHttpRequest();
        var formData = new FormData();
        var image = document.getElementById('file1');
        var file = image.files[0];
        formData.append("file1", file);
        xhr.open('POST','/up.php',true);
        xhr.onreadystatechange = function(){
            console.log(xhr.responseText);
        }
        xhr.send(formData);
    }

phpinfo

session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_

ajax를 이용하여 업로드 진행중에 세션 키 값을 받으려고하는데 값이 비어 있습니다.

혹시 이유를 알 수 있을까요?

 다음글 socket 통신 관련 질문 및 조언을 듣고자 글을 올... (4)
 이전글 지도 API에 대해 질문합니다. (1)

댓글

변종원(웅파) / 2017/05/26 14:31:29 / 추천 1

ci 세션은 php세션과 다릅니다.

ci세션으로 만들었으면 ci세션 사용법으로 가져와야 하고

php 세션으로 만들었으면 php 세션 사용법으로 가져와야 합니다.

kuro / 2017/05/26 18:03:56 / 추천 0

웅파님 답변 감사합니다!

네이티브 세션 , ci세션 둘다 해봤는데 잘 안되네요

제가 이해를 못해서 그런거 같습니다.

일단 지금 현재 제 상황으로는 저 방법으로는 구현이 어려운거 같습니다.

데이터 총 크기 , 데이터 업로드 된 크기를 알아서 그걸 가지고 구현을 해야하는거 같은데 (제 짧은 주관적인 생각입니다),

지금 제 능력으로는 그게 안되네요. ㅠ

데이터 총 크기 , 데이터 업로드 된 크기를 알 수 있는 또 다른 방법이 있을까요?

변종원(웅파) / 2017/05/26 19:00:24 / 추천 1
jquery 플러그인도 많고 이미 구현되어있는 소스 많습니다. 참고하신 소스는 좀 오래 된것 같네요
kuro / 2017/05/26 19:34:19 / 추천 0
http://php.net/manual/en/session.upload-progress.php
메뉴얼 보고 한건데 오래된거군요
현재 php7을 사용 하고 있습니다.
코드이그나이터는 3.x버전입니다
php7은 않되는 건가요?
변종원(웅파) / 2017/05/26 23:22:25 / 추천 1
kuro / 2017/05/27 00:41:43 / 추천 0
웅파님 답변 감사합니다!
즐거운 주말 되세요!!!