2016-11-15 78 views
1

我在网站上做一个功能,可以让用户上传图像和图像将存储在项目的目录。图像路径也创建并存储在数据库中,以便可以使用路径获取图像。上传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并且没有目录存储的映像。

我的代码有什么问题?

回答

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; 
}