0

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

我目前遇到的现象是,我从用户界面获取的数据看起来是正确的,但是让 zend 框架确认数据已发送到 php 页面的唯一方法是使用 getRawBody()。isPost() 结果为真,但 getPost() 不返回任何数据,而且 $_REQUEST 根本不返回任何数据。我正在使用 $upload=new \Zend_File_Transfer_Adapter_Http(); 在程序中处理传入的文件。但是: $upload->getFileInfo(); 也根本不返回任何数据(apache 和 php 的错误日志没有显示任何异常。)

getRawBody 返回以下字符串(我已将其放入日志文件中,因此 string(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 时它才不起作用。谢谢

4

1 回答 1

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, ... 再次被填充。

于 2012-11-05T08:04:05.100 回答