为了账号安全,请及时绑定邮箱和手机立即绑定

当我尝试在数据库中存储文件路径名时,为什么会得到 null 返回值?

当我尝试在数据库中存储文件路径名时,为什么会得到 null 返回值?

PHP
侃侃无极 2023-07-08 20:58:27
我不确定为什么null在尝试测试我的端点是否有效时会得到回报。表名是正确的,但由于某种原因,它无法识别我的文件。尽管我有代码,但我的表有不止一列,并且是使用php artisan. (我只是想填充filePath列,稍后我将处理其他列)。下面是一张图片供参考如果我删除dd($filePath);控制器中的which - 邮递员错误将返回:Integrity constraint violation: 1048 Column 'file_path' cannot be null (SQL: insert into 照片 (文件路径) values (?))注意:我的 Laravel 代码库和 React.js 代码库是完全分开的。任何人都知道为什么会发生这种情况?这是我的前端代码:fileSelectedHandler = event => {    this.setState({        selectedFile: event.target.files[0]    })}fileUploadHandler = () => {    const fd = new FormData();    fd.append('image', this.state.selectedFile, this.state.selectedFile.name);    axios.post('http://myendpoint/api/auth/wall-of-fame', fd)        .then(res => {            console.log(res);        })}<form action="http://myendpoint/api/auth/wall-of-fame" encType='multipart/form-data' id="login-form" className="form">            <input type="file" name="file" onChange={this.fileSelectedHandler}/>            <button onClick={this.fileUploadHandler}>Upload</button>        </form>这是我的 php 控制器:public function store(Request $request){    $filePath = $request->input('file')->getClientOriginalName();    $data=array('file_path'=>$filePath);    // dd($filePath);    DB::table('photos')->insert($data);    echo "Record inserted successfully.<br/>";    echo '<a href = "/insert">Click Here</a> to go back.';}
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

当从Request检索文件时,使用filemethod 而不是inputmethod :

$filePath = $request->file('file')->getClientOriginalName();

您可以使用以下方法确定请求中是否存在文件hasFile

if ($request->hasFile('file')) {
    $filePath = $request->file('file')->getClientOriginalName();
}
查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信