2010-05-15 5 views
3

zend 프레임 워크를 사용하여 업로드하는 동안 progressprobar 확장을 얻으려면 PHP 5.3.2를 사용하고 있습니다. zend가 제공하는 데모조차도 작동하지 않습니다. 젠드 예제 코드 -PHP Uploadprogress 확장 함수가 업로드 데이터가없는 null을 항상 반환합니다.

if (isset($_GET['uploadId'])) { 
set_include_path(realpath(dirname(__FILE__) . '/../../../library') 
       . PATH_SEPARATOR . get_include_path()); 

require_once 'Zend/ProgressBar.php'; 
require_once 'Zend/ProgressBar/Adapter/JsPull.php'; 
require_once 'Zend/Session/Namespace.php'; 

$data   = uploadprogress_get_info($_GET['uploadId']); 
$bytesTotal = ($data === null ? 0 : $data['bytes_total']); 
$bytesUploaded = ($data === null ? 0 : $data['bytes_uploaded']); 

$adapter  = new Zend_ProgressBar_Adapter_JsPull(); 
$progressBar = new Zend_ProgressBar($adapter, 0, $bytesTotal, 'uploadProgress'); 

if ($bytesTotal === $bytesUploaded) { 
    $progressBar->finish(); 
} else { 
    $progressBar->update($bytesUploaded); 
} 

}

uploadprogress_get_info는 항상 null를 돌려줍니다. 뭔가가 내 코드에 잘못된 것 같아요 그래서 난 http://labs.liip.ch/uploadprogresssimple/index.php에서 사용할 수있는 작업 샘플을 다운로드하지만 그 경우에도 uploadprogress_get_info 항상 null을 반환합니다.

내 uploadprogress의 설정이 uploadprogress 지원이 활성화

버전 1.0.1

uploadprogress.file.contents_template/tmp를/upload_contents_ %의

uploadprogress.file.filename_template/tmp를/upt_ % s.txt

uploadprogress.get_contents 1

주위에 인터넷 검색을 내가 uploadprogress 확장 Suhosin Patch < 0.9.26와 함께 몇 가지 문제가 발견하지만 난 수호신 패치 0.9.9.1을 사용하고 있지만

답변

1

로컬로이 테스트를하고 있습니까? 이걸 로컬 호스트에서 테스트하는 거니? 원격 호스트에 업로드를 시도하거나 다소 큰 파일을 테스트하십시오 (이전에 upload_max_filesizepost_max_size에 부딪 혔는지 확인하십시오). 주위에 인터넷 검색을하는 동안

+0

저는 느린 속도를 시뮬레이트하기 위해 firefox throttle addon으로 다른 컴퓨터에서 로컬로 테스트하고 있습니다. 업로드가 완료되고 완료하는 데 시간이 걸립니다. – abhinavlal

1

은 내가 uploadprogress 확장 수호신 패치 < 0.9.26 몇 가지 문제를 가지고 있지만 난 수호신 패치 0.9.9.1

나도 같은 수호신 버전에 오전를 사용하여이 문제를 겪고 발견했다. 또한 suhosin도 불구가 된 apc_fetch()를 시도했습니다.

어리석은 패치. 그것을 제거하려면 PHP를 다시 작성해야합니다. f *** 술을 위해서!

1

Zend_File_Transfer_Adapter를 사용하여 업로드를 처리 할 때도 저와 같은 문제가 있습니다. 당신이 업로드 된 파일을 확인할 수 있기 때문에 그것의 유용도 :

적어도 서버의 구성에 당신을 도울 수있는 유용한 방법 중 몇은 다음과 같습니다

Zend_File_Transfer_Adapter_Http::isApcAvailable(); 
Zend_File_Transfer_Adapter_Http::isUploadProgressAvailable(); 
0
  1. 실행은 phpinfo UploadProgress가 설치되어 있고 tmp 디렉토리가 서버에 쓸 수 있는지 확인하십시오. "uploadprogress.file.filename_template"은 phpinfo의 오른쪽 tmp 폴더를 나타냅니다.

  2. uploadprogress가 쓰기 가능한지 확인하려면 다음 코드를 실행할 수 있습니다.

    < div id = " 상태 " 스타일 = " 테두리 : 1px 검은 색 실선; <? ph
    $ templateini = ini_get (" uploadprogress.file.filename_template ");
    $ testid = " thisisjustatest ";
    $ template = sprintf ($ templateini, $ testid);
    $ templateerror = false;
    ($ 템플릿! = $ templateini & & @touch ($ 템플릿) & & file_exists ($ 템플릿) & $ 템플릿 &) {
    .는 realpath는 // 인쇄 '('$ templateini가. '쓰기이다.입니다 경우 'str_replace ($ testid, " % ", realpath ($ template)).') ';
    unlink ($ template);
    } else {
    $ templateerror = true;
    }
    경우 (function_exists (" uploadprogress_get_info ")) {
    경우 ($의 templateerror) {
    인쇄 '배경 색상 : 빨강; " ';
    인쇄 " > 문제. ";
    if ($ template == $ templateini) {
    인쇄 " uploadprogress.file.filename_template ($ templateini)에 고유 한 임시 파일을 만들기위한 % s이 없습니다. 조정하십시오. <br/> ";
    else {
    print " $ templateini는 쓰기 가능하지 않습니다. < br/> 디렉토리가 존재하고 웹 서버에 쓸 수 있는지 확인하십시오. < br/>
    또는 'uploadprogress.file.filename_template'설정을 올바른 경로로 조정하십시오. ";
    }
    } else {
    인쇄 '배경색 : 녹색; " > uploadprogress 확장 프로그램이 설치되어 있고 초기 검사에서 모든 것이 양호 함을 보여줍니다 ';
    }
    } else {
    ? >
    background-color : red; " > uploadprogress 확장 프로그램이 설치되어 있지 않습니다.
    <? php}?/DIV >

  3. 위의 코드는 php.ini 파일에서 올바른 tmp 디렉토리에 오류 지점을 제공하는 경우 >

    <. Windows localhost 시스템의 Xampp tmp 디렉토리에 대한 php.ini 파일에 다음 행이 추가되었습니다. uploadprogress.file.filename_template = C : \ xampp \ tmp \ some_name_ % s.txt

  4. 이제 Zend 데모를 실행하여 작동 시키거나 다음을 실행하여 var_dump를 수동으로 가져 오십시오. var_dump (uploadprogress_get_info ($ _ GET [ 'uploadId']));

관련 문제