使用ZF 1.9上传文件导致无数据

时间:2012-10-16 08:28:01

标签: php zend-framework extjs

我目前正在混合使用extJS4和Zend Framework 1.9(文件上传页面的用户界面用extJS4编程,而应用程序本身用Zend Framework 1.9编程)。

我目前正在遇到这种现象,我从用户界面获得的数据看起来是正确的,但是甚至让zend框架确认数据已经发送到php页面的唯一方法是使用getRawBody ()。 isPost()结果为true,但getPost()不返回任何数据,$ _REQUEST根本不返回任何数据。 我正在使用$ upload = new \ Zend_File_Transfer_Adapter_Http();在程序中处理传入的文件。 但是:$ upload-> getFileInfo();也根本不返回任何数据 (apache和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--
"

我的问题是这种行为的原因是什么(或者如果我在这里做错了)。 (注意:我正在使用XAMPP和PHP 5.4作为Web服务器)

我现在尝试使用其他变体:

 <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它才能运行。 感谢

1 个答案:

答案 0 :(得分:0)

问题现在解决了。从我最初怀疑的php侧/ zend框架方面来说这不是问题,而是由extJS代码中的参数引起的。

$ _REQUEST,$ _POST,$ _GET为空并且只有getRawBody()得到“Post”的现象是由以下参数设置为true引起的:

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

一旦参数设置为false:

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

$ _POST,...再次被填满。