从react native使用axios时,表单数据文件在laravel/lumen中返回null
这是我第一次使用React Native和Laravel 我正在尝试在React Native中创建一个上传表单,以Lumen API 当我尝试使用邮递员将文件上传到Lumen时,效果很好。但是在React Native中使用Axios时:从react native使用axios时,表单数据文件在laravel/lumen中返回null,laravel,react-native,axios,lumen,Laravel,React Native,Axios,Lumen,这是我第一次使用React Native和Laravel 我正在尝试在React Native中创建一个上传表单,以Lumen API 当我尝试使用邮递员将文件上传到Lumen时,效果很好。但是在React Native中使用Axios时: $request->file('file') 返回 空的 ##客户 异步上传文档(文档,文件){ //文档是一些表单数据 //文件:{ //发件人:'me@mail.com', //致:'someone@gmail.com', //文件日期:“202
$request->file('file')
返回
空的
##客户
异步上传文档(文档,文件){
//文档是一些表单数据
//文件:{
//发件人:'me@mail.com',
//致:'someone@gmail.com',
//文件日期:“2020-02-01”,
// ....
// }
//来自react本机文档选择器的文件
//文件:{
//文件名:“blabla.pdf”,
//键入:“blabla/blabla”,
//uri:'content://blablabla',
// }
让我们分别;
试一试{
resp=等待axios.post(
`${API_ENDPOINT}/documents`,
helper.createFormData(文件、文档),
{
标题:{
接受:'application/json',
“内容类型”:“多部分/表单数据”,
},
},
);
}捕获(e){
log(`Axios error:${e.message}`);
投掷e;
}
log(`Server response:${JSON.stringify(resp.data)}`);
返回响应;
},
##助手
导出默认值{
createFormData(文件、正文){
const data=新表单数据();
data.append('文件'{
名称:file.fileName,
type:file.type,
uri:file.uri,
});
Object.keys(body.forEach)(key=>{
data.append(key,body[key]);
});
返回数据;
},
};
尝试将数据.append('file'…)
更改为数据.append('file',file)
。
public function store(Request $request) {
$this->validate($request, [
"file" => 'required|file',
"from" => 'required',
"to" => 'required',
"subject" => 'required',
"doc_date" => 'required',
"doc_type" => 'required',
"doc_number" => 'required',
]);
$file = $request->file('file');
$fileName = $file->getClientOriginalName();
$saved_name = uniqid() . '_' . $fileName;
$path = "uploads" . DIRECTORY_SEPARATOR . "documents" . DIRECTORY_SEPARATOR;
$file->move($path, $saved_name);
$document = new Document();
$document->from = $request->input("from");
$document->to = $request->input("to");
$document->subject = $request->input("subject");
$document->doc_date = $request->input("doc_date");
$document->doc_type = $request->input("doc_type");
$document->doc_number = $request->input("doc_number");
$document->file_path = $path . $saved_name;
$document->save();
return response()->json(['document' => $document], 201);
}