上传laravel 5.3上的图像,但得到空
问题描述:
我在网站上做一个功能,可以让用户上传图像和图像将存储在项目的目录。图像路径也创建并存储在数据库中,以便可以使用路径获取图像。上传laravel 5.3上的图像,但得到空
此站点现在在Windows Server 2008 R2上使用带有PHP 7和MariaDB 10.1.6的Laravel 5.3。当我尝试上传时,发现没有任何图像和路径存储在目录和数据库中,数据库的图像路径(我命名为imgsrc
)列只存储了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>
这是我的控制器部分:
<?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 */
}
我读Laravel的堆栈溢出文件和一些问题,试图使用它们。但是,数据库的imgsrc
列仍然存储NULL
并且没有目录存储的映像。
我的代码有什么问题?
答
你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;
}