Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我在试图将文件路径名存储到数据库中时会得到一个空值?_Php_Laravel_Debugging - Fatal编程技术网

Php 为什么我在试图将文件路径名存储到数据库中时会得到一个空值?

Php 为什么我在试图将文件路径名存储到数据库中时会得到一个空值?,php,laravel,debugging,Php,Laravel,Debugging,我不知道为什么我在尝试测试端点是否工作时会得到null 表名正确,但由于某些原因,它无法识别我的文件。尽管我使用了php-artisan,但我的表as有不止一列。(我只是尝试填充filePath列,稍后我将处理其他列)。以下是供参考的图像 如果我去掉dd($filePath)在我的控制器中-邮递员错误返回: 完整性约束冲突:1048列“文件路径”不能为空(SQL:插入到照片(文件路径)值(?) 注意:我的Laravel代码库和React.js代码库是完全分开的。有人知道为什么会这样吗 这是我的

我不知道为什么我在尝试测试端点是否工作时会得到
null

表名正确,但由于某些原因,它无法识别我的文件。尽管我使用了
php-artisan
,但我的表as有不止一列。(我只是尝试填充
filePath
列,稍后我将处理其他列)。以下是供参考的图像

如果我去掉
dd($filePath)在我的控制器中-邮递员错误返回:

完整性约束冲突:1048列“文件路径”不能为空(SQL:插入到照片
文件路径
)值(?)

注意:我的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>
fileSelectedHandler=event=>{
这是我的国家({
selectedFile:event.target.files[0]
})
}
fileUploadHandler=()=>{
const fd=new FormData();
fd.append('image',this.state.selectedFile,this.state.selectedFile.name);
轴心柱http://myendpoint/api/auth/wall-of-fame",fd)
。然后(res=>{
控制台日志(res);
})
}
上传
这是我的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.';
}
公共函数存储(请求$Request){
$filePath=$request->input('file')->getClientOriginalName();
$data=array('file\u path'=>$filePath);
//dd($filePath);
DB::table('photos')->insert($data);
echo“记录插入成功。
”; 回音‘回去’; }
请求检索文件时,请使用
文件
方法而不是
输入
方法:

$filePath = $request->file('file')->getClientOriginalName();
您可以使用
hasFile
方法确定请求中是否存在文件:

if ($request->hasFile('file')) {
    $filePath = $request->file('file')->getClientOriginalName();
}

请求检索文件时,请参阅官方文档

,使用
文件
方法而不是
输入
方法:

$filePath = $request->file('file')->getClientOriginalName();
您可以使用
hasFile
方法确定请求中是否存在文件:

if ($request->hasFile('file')) {
    $filePath = $request->file('file')->getClientOriginalName();
}

参见官方文档

不确定react代码,但通常不会提交文件。需要看看这个:@SalimIbrogimov谢谢分享。我尝试了建议的方法,但现在我得到了对文件中null的成员函数getClientOriginalName()的
调用。我真的不知道发生了什么事。我已更新了控制器代码。您的表单缺少此attr:enctype=“multipart/form data”。@SalimIbrogimov忘了提及我也尝试过,但仍然得到相同的结果:(不确定react代码,但通常
不会提交文件。需要查看以下内容:。@SalimIbrogimov感谢分享。我尝试了建议的内容,但现在我得到了对成员函数getClientOriginalName()的
调用)我真的不知道发生了什么。我已经更新了我的控制器代码。你的表单缺少这个attr:enctype=“multipart/form data”。@SalimIbrogimov忘了提到我也试过了,但仍然得到了相同的结果:(谢谢,就是这样,我在
dd()中得到了预期的结果)
!现在我需要弄清楚为什么文件名不会存储在DB中。很高兴知道它帮助了你:)谢谢,就是这样,我在
dd()中得到了预期的结果。
!现在我需要弄清楚为什么文件名不会存储在DB中。很高兴知道它帮助了你:)