2016-11-15 31 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; 
}