2010-06-29 3 views
2

저는 APC에서 인터넷을 통해 읽고 있었으며, 파일 업로드를 감지하는 멋진 방법처럼 보입니다.PHP 및 APC, 파일 업로드 진행 상태가 캐시되지 않습니까?

그러나 문제가 있습니다.

저는 Ajax를 사용하여 파일과 모든 것을 호출하는 방법을 알고 있습니다. 그게 내가 계획하고있는 것이지만, 테스트를 위해서, 나는 이와 같은 것을하고 있습니다.

좋아, 그래서 3 파일이 있습니다.

form.php

status.php upload.php로 form.php에는 다음이 포함

<input type="hidden" name="APC_UPLOAD_PROGRESS" value="1234" /> 
<input type="file" id="fileIn" name="file" /> 

(내가 APC_UPLOAD_PROGRESS에 고유 한 ID를 사용해야합니다 것을 알고 다시 말하지만,이. 단지 testings를 술입니다)

좋아, 이제 upload.php로가 가지고있는 일반 PHP 업로드 스크립트.

$origin = $_FILES['file']['name']; 
if(move_uploaded_file(...etc...etc)... 

그리고 Status.php 사용 APC :

$upload = apc_fetch('upload_1234'); 
if ($upload) { 
    if ($upload['done']) 
     $percent = 100; 
    else if ($upload['total'] == 0) 
     $percent = 0; 
    else 
     $percent = $upload['current']/$upload['total'] * 100; 

echo $percent; 
} 

이제 내가 일반 HTTP 방법을 사용하여 파일을 업로드하고 Status.php을 모니터링하는 다른 창을 사용하고있는 중이 야.

문제는 다음과 같습니다. Status.php는 아무것도 반환하지 않습니다!

그러나, 내가 쓸 경우 print_r (apc_fetch ('upload_1234')); 먼저 upload.php로

, 그것이 내가 뭘 잘못 모든 세부 사항 등과 올바른 배열 ..

을 반환?

감사합니다.

+0

또한 apc.rfc1867 등은 모두 사용하도록 설정되어 있습니다. – Moe

+0

분명히 대체 가능한 옵션이 있습니다 : http://pecl.php.net/package/uploadprogress –

+0

자습서가 있습니까? – Moe

답변

2

이 경우 확인해야 할 점은 양식에 파일을 입력하기 전에 APC_UPLOAD_PROGRESS 키가있는 숨겨진 입력 요소가 인 바로입니다.

위의 예에서 양식을 사용하는 것으로 알고 있지만 더 복잡한 양식 레이아웃에서는 쉽게 찾을 수 없습니다.

+0

부끄러움이 대답은 받아 들여지지 않았습니다. 파일 입력 전에 숨겨진 입력이 있어야한다는 것을 알지 못했습니다. – rich97