2012-10-16 2 views
0

현재 extJS4와 Zend Framework 1.9가 혼합되어 있습니다 (파일 업로드 페이지의 사용자 인터페이스는 extJS4로 프로그래밍되었으며 응용 프로그램 자체는 Zend Framework 1.9로 프로그래밍되었습니다) .데이터가없는 ZF 1.9로 파일 업로드

저는 현재 사용자 인터페이스에서 가져온 데이터가 정확한 것처럼 보이지만, 데이터가 PHP 페이지로 전송되었음을 알리는 젠드 프레임 워크를 얻는 유일한 방법은 getRawBody(). isPost() 결과는 true이지만 getPost()는 데이터를 반환하지 않으며 $ _REQUEST는 전혀 데이터를 반환하지 않습니다. $ upload = new \ Zend_File_Transfer_Adapter_Http();를 사용하고 있습니다. 들어오는 파일을 처리하는 프로그램에서. 하지만 $ upload-> getFileInfo(); 또한 에 아무런 데이터도 반환하지 않습니다. 아파치와 PHP의 오류 로그는 평범하지 않습니다.

getRawBody가 다음 문자열을 반환합니다 (로그 파일에 넣었으므로 문자열 (776) 내 로깅 기능의 일부)입니다 :

string(776) "Content-Type: multipart/form-data; boundary=---------------------------2384732604503 
Content-Length: 667 

-----------------------------2384732604503 
Content-Disposition: form-data; name="combobox-1327-inputEl" 

2 
-----------------------------2384732604503 
Content-Disposition: form-data; name="filefield-1328-inputEl"; filename="mytest. - Kopie.txt" 
Content-Type: text/plain 

testtest 
-----------------------------2384732604503 
Content-Disposition: form-data; name="filefield-1329-inputEl"; filename="mytest..txt" 
Content-Type: text/plain 

testtest 
-----------------------------2384732604503 
Content-Disposition: form-data; name="filefield-1330-inputEl"; filename="" 
Content-Type: application/octet-stream 


-----------------------------2384732604503-- 
" 

내 여기 질문 (이 문제에 대한 이유가 될 수 있는지 또는 I)는 여기에 뭔가를 잘못하고 있어요합니다. (참고로 : 웹 서버로 내가 PHP 5.4 XAMPP를 사용하고 있습니다)

내가 지금 다른 변형으로 그것을 밖으로 시도했다 :

<html> 
    <body> 
    <form action="/uploadmodule/index/save-upload/" method="post" enctype="multipart/form-data"> 
     Name: <input type="text" name="imageName" /> 
     Image: <input type="file" name="image" /> 
     <input type="submit" value="submit" /> 
    </form> 
    </body> 
</html> 

나는 이것을 사용하면 .... 모든 기능으로 그것은 ... extJS4 uploadvariant를 사용할 때만 작동하지 않습니다. 감사합니다.

+0

항목 파일이 들어있는 양식을 인스턴스화하는 방법을 보여주십시오. – JellyBelly

+0

잘 모르겠습니다. 양식 자체를 "호출"하는 것을 의미합니까? ("양식"은 파일을 업로드하고 내 ZF 업로드 방법을 호출하기 위해 AJAX 호출을 사용하는 외부 extJS4 파일의 일부입니다). 그럼 AJAX 호출 자체가 필요하겠습니까? 아니면 extJS 부분일까요? – Thomas

+0

다음 Zend_Form_Element_File을 사용하고 있지 않습니다 : http://akrabat.com/zend-framework/file-uploads-with-zend_form_element_file/? – JellyBelly

답변

0

지금 문제가 해결되었습니다. 그것은 원래 php 측/zend 프레임 워크 측에서 문제가 아니었지만 extJS 코드의 매개 변수로 인해 발생했습니다.

$ _REQUEST, $ _POST, $ _GET 비어 만 getRawBody()는 "포스트"가 true로 설정 다음 매개 변수에 의해 발생 된 얻었다 현상 :

Ext.data.writer.JsonView.prototype.encode = true; 
즉시 매개 변수가되면서

~ 거짓 :

Ext.data.writer.JsonView.prototype.encode = false; 

$ _POST, ...이 (가) 다시 입력되었습니다.