如何从Yii 1.1后端读取使用React和Redux从客户端发送的FormData?

时间:2018-06-20 04:17:01

标签: php reactjs file-upload redux yii1.x

我正在使用带有Yii 1.1的React和Redux,并且试图将FormData从客户端发送到后端:

const data = new FormData();

data.append("title", this.state.title);
data.append("file", this.state.file[0]);

createDownloadableForm(data);

它是multipart/form-data。我已经使用this答案的建议检查了文件是否正在发送。我可以看到titlefile。问题出在后端Yii 1.1,在这里我找不到如何读取此信息的线索。

public function actionCreate()
{
    $request = \Yii::app()->request;
    // ???
}

我尝试注销可能的思考方式,以查看是否以某种方式接收到任何东西,但结果都是null或空数组。

\Yii::log(json_encode($request)); // <~ nothing about what is coming, even if it is a simple JSON request, it does not show it like this.
\Yii::log(json_encode($_FILES or $_POST)); // <~ []
\Yii::log(json_encode($_FILES['files'] or $_POST['title'])); // <~ error
\Yii::log(json_encode($request->getPost("title"))); // <~ null
\Yii::log(json_encode($request->getJSON("title"))); // <~ null, but I know, it is not application/json
...

这是Redux动作。

export function createDownloadableForm(data) {
  return (dispatch, getState) => {
    const { auth: { oauthToken, oauthTokenSecret } } = getState();

    return dispatch({
      [CALL_API]: {
        endpoint: "/api/downloadable-forms",
        method: "POST",
        headers: {
          'xoauthtoken': oauthToken,
          'xoauthtokensecret': oauthTokenSecret,
        },
        body: data,
        types: [CREATE_DOWNLOADABLE_FORMS, CREATE_DOWNLOADABLE_FORMS_SUCCESS, CREATE_DOWNLOADABLE_FORMS_FAILURE]
      }
    })
  }
}

有可能吗?

0 个答案:

没有答案