0

現在、extJS4とZend Framework 1.9を組み合わせて使用​​しています(ファイルアップロードページのユーザーインターフェイスはextJS4でプログラムされていますが、アプリケーション自体はZend Framework 1.9でプログラムされています)。

私は現在、ユーザーインターフェイスから取得しているデータが正しいように見えるという現象に遭遇していますが、データがphpページに送信されたことを確認するためにzendフレームワークを取得する唯一の方法は、getRawBody()を使用することです。isPost()はtrueになりますが、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--
"

ここでの私の質問は、この動作の理由が何である可能性があるかです(または私がここで何か間違ったことをしている場合)。(注:Webサーバーとして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>

これを使用すると...すべてが正常に機能します...extJS4uploadvariantを使用した場合にのみ機能しません。ありがとう

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 に答える