我正在使用带有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答案的建议检查了文件是否正在发送。我可以看到title
和file
。问题出在后端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]
}
})
}
}
有可能吗?