【发布时间】:2019-12-12 18:59:17
【问题描述】:
当我尝试使用reactjs 和laravel 为后端上传文件时,我的代码出现问题,单击提交按钮后服务器响应出现 500 IS 错误,期待内部代码我收到消息呼叫成员函数getClientOriginalName() on null,我猜是因为我的js 函数而出现错误,所以希望有人能帮我找出答案,我很感激
我的反应组件:
constructor(){
super();
this.fileInput = React.createRef();
this.state = {
name: '',
avatar: '',
}
}
handleNameChange(e){
this.setState({
name: e.target.value
})
}
handleAvatarChange(e){
this.setState({
avatar:this.fileInput.current.files[0].name
})
}
handleSubmit(e){
e.preventDefault();
axios.post('/api/add', this.state).then(response => {
console.log(response)
}).then(error => {
console.log(error)
})
}
render(){
return (
<div>
<a href="/">home</a>
{/*<Link to="/" className="btn btn-success">Return to Items</Link>*/}
<form className="form-horizontal" onSubmit={this.handleSubmit.bind(this)}>
<input type="text" className="form-control" id="name" value={this.state.name} onChange={this.handleNameChange.bind(this)}/>
<input type="file" ref={this.fileInput} onChange={this.handleAvatarChange.bind(this)} /><br></br>
<button type="submit" className="btn btn-default">Save</button>
</form>
</div>
)
}
}
我的控制器:
public function store(Request $request){
$file_name_image = $request->file('avatar')->getClientOriginalName();
$user = new User();
$user->name = $request->name;
$user ->avatar = $file_name_image;
$request->file('avatar')->move('upload/',$file_name_image);
$user->save();
return response()->json('Successfully added');
}
【问题讨论】:
-
您需要发送表单数据并添加标题
-
你能推荐一些代码吗,我是新手,对我来说很复杂
-
你会在这里找到答案:stackoverflow.com/questions/41878838/…
-
@Gary 谢谢!它可以工作,但只能将文件插入数据库,现在我想添加更多描述或名称等?我该怎么做?
标签: javascript reactjs laravel