在laravel 5.3上传图片但获得null

时间:2016-11-15 17:48:44

标签: php laravel

我正在网站上制作一个功能,可以让用户上传图像和图像存储在项目目录中。图像路径也创建并存储在数据库中,以便可以使用路径获取图像。

此站点现在在Windows Server 2008 R2上使用Laravel 5.3和PHP 7以及MariaDB 10.1.6。当我尝试上传时,我发现目录和数据库中没有任何图像和路径,数据库的图像路径(我命名为imgsrc)列只存储{{1}即使我选择了图像。

这是我的观点部分:

NULL

这是我的控制器部分:

<form action="/task" method="POST" class="form-horizontal" enctype="multipart/form-data">
<!-- Bypass other input part -->
    <div class="row">
        <label for="task-image" class="col-sm-3 control-label">Image</label>
        <div class="col-sm-6">
            <input type="file" name="imgsrc" id="task-image" class="form-control"  accept="image/*">
        </div>
    </div>
<!-- Bypass other input part -->
</form>

我阅读了Laravel的文档和Stack Overflow上的一些问题,尝试使用它们。但是,数据库的<?php namespace App\Http\Controllers; use Image; // Intervention\Image use App\Task; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\Validator; class crud_controller extends Controller { public function create_crud (Request $request) { /* Bypass other part */ if ( $request->hasFile('image') ) { if ( $request->hasFile('photo') ) { $filename = rand(10,100).$request->file('photo')->getClientOriginalName(); $formal_file = 'storage/images/'.$filename; $img_file = Image::make( Input::file('photo') ) ->resize('400',null)->save($formal_file); // Fllowing part, none of all will fix problem. // $image->save(storage_path('app/blogpost/' . $postId . '/' . $imageName)); // storage_path('storage/images'.); // $img_file = Image::make( Input::file('photo') ->resize('400',null)->move(public_path().'/images/vijesti', $filename); $task->imgsrc = $request->$formal_file; } } $task->save(); return redirect('/'); } /* Bypass other part */ } 列仍然存储imgsrc,并且没有目录存储的图像。

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

您的if语句将始终失败,因为您的图片名称为imgsrc,但您正在检查image/photo,因此您可以将代码更改为以下内容:

if ( $request->hasFile('imgsrc') )
{
    $filename = rand(10,100).$request->file('photo')->getClientOriginalName();
    $formal_file = 'storage/images/'.$filename;
    $img_file = Image::make( Input::file('photo') )
                ->resize('400',null)->save($formal_file);
    // Fllowing part, none of all will fix problem.
    // $image->save(storage_path('app/blogpost/' . $postId . '/' . $imageName));
    // storage_path('storage/images'.);
    // $img_file = Image::make( Input::file('photo') ->resize('400',null)->move(public_path().'/images/vijesti', $filename);
    $task->imgsrc = $request->$formal_file;
}