我正在网站上制作一个功能,可以让用户上传图像和图像存储在项目目录中。图像路径也创建并存储在数据库中,以便可以使用路径获取图像。
此站点现在在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
,并且没有目录存储的图像。
我的代码出了什么问题?
答案 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;
}