2010-01-16 4 views
1

uploadify with jquery 1.4를 사용하여 이미지를 업로드하고 있습니다. 우리가 (짧은)하지 않는다uploadify + uploadComplete 후 jQuery 1.4 응답이 비어 있습니다.

$json_response['status'] = "true"; 
$json_response['file'] = $_FILES; 
echo Zend_Json_Encoder::encode($json_response); 

자바 스크립트 :

$('#images_upload_file').uploadify({ 

    onComplete: function(event, queueID, fileObj, response, data) { 

      console.log("upload complete"); 
      console.log(response); 

은 "응답이"항상 비어 상관없이 파일을 업로드 PHP 스크립트에서 우리는이 인쇄 할 수 있습니다. 이벤트, queueID, fileObj 및 데이터가 모두 올바르게 채워집니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?

자세한 정보가 필요한 경우 알려주십시오. 추신 : 코드는 이미지를 잘 업로드합니다. jquery 1.4로 업그레이드 한 이후 항상 응답이 비어 있습니다.

+0

특별한 이유 때문에'json_encode' 함수에서'Zend_Json_Encoder :: encode'를 빌드하는 대신에'? 나는'json_encode'와 uploadify를 사용하는 데 문제가 없다. 또한, 대신'response.status'와'response.file'를'console.log'로 출력하십시오. –

+0

jquery 1.4를 사용하고 있습니까? – Jorre

+0

저는 여전히 1.3.2를 사용하고 있습니다. json을 다루기 위해 항상 http://json.org의 json2.js를 사용합니다. 아래 코드를 게시합니다. –

답변

1

나는 항상 json 데이터를 처리하기 위해 json2.js을 사용합니다. 이 라이브러리는 데이터가 적절한 json 형식이 아닌 경우 안전 메커니즘을 가지고 있습니다. http://json.org에서 가져올 수 있지만 js 파일은 사이트에서 직접 사용하지 않고 다운로드해야합니다.

내 코드는 항상 다음과 같습니다 : 내 PHP 스크립트 세션 검사가 있고, 세션이 인정되지 않는 경우 리디렉션 때문에

onComplete : function (event, queueID, fileObj, response, data) { 
    //process response 
    try { 
    var r = JSON.parse(response); 
    //process the JSON data, ex 
    console.log(r.status); 
    } 
    catch(e) { 
    //not json or bad format, do something about it 
    alert("cannot parse data as json!"); 
    } 
} 

내가 json2.js을 사용하는 이유는. 그것은 필터 모듈을 사용하여 페이지를 입력하기 전에 완료되었으므로 AJAX 요청인지 일반 페이지 액세스인지 확인할 수 없습니다. 필요한 세션이 페이지의 규칙을 만족하지 못하면 즉시 리디렉션되므로 전체 웹 페이지가 반환됩니다.

이렇게하면 응답이 유효한 json 형식이 아닙니다. json2.js을 사용하여 catch 블록에서 처리 할 수 ​​있습니다. 그런 다음 다른 작업 (예 : 현재 페이지를 다시로드)을 수행하십시오. 이것은 내가 항상 사용하고 항상 나를 위해 일하는 것입니다.

FYI, json2.js 전혀 필요없고 jQuery와 관련이 없습니다.

+0

감사합니다.이 답변은 훌륭합니다. json 구문 분석 문제를 해결합니다. 비록 jQuery에서 json 클래스를 사용하지 않아도되기 때문에 업로드 문제 여야합니다. Safari가 파일을 업로드 한 후 자동으로 충돌/종료됩니다 ... 사파리에서 작동합니까? – Jorre

+0

또 다른 의견 : Internet Explorer 7은 JSON을 구문 분석 할 때 경고를 표시합니다. FF 및 Safari와 Chrome에서는 작동하지만 IE에서는 작동하지 않습니다. – Jorre

+0

글쎄, 리눅스를 사용하기 때문에 파이어 폭스와 구글 크롬에서만 코드를 점검한다. 나는 둘 다 문제가 생기지 않았다. IE는 항상 PITA를 처리합니다. 최신 업로드 파일을 사용해 보셨습니까? 업로드 또는 사파리의 버그 일 수 있습니다. 인터넷 익스플로러의 경우 나에게 달려있다면 '현대적인 브라우저'를 사용하라는 스플래시 이미지를 표시하는 것이 좋습니다. :). 어쩌면 Firebug Lite를 사용하여 IE의 문제를 추적 할 수 있습니다. –

0

PHP 스크립트에서 error_reporting이 켜져 있습니까?

error_reporting 설정으로 인해 출력되지 않는 치명적인 오류 (예 : Zend_Json_Encoder 클래스를로드 할 수 없기 때문에)가있을 수 있습니까?

+0

안녕하세요. Pekka, 치명적인 오류는 아닙니다. 우리는 모든 응용 프로그램에서 json_encoder를 사용하고 있으며 정상적으로 작동합니다. – Jorre

관련 문제