2012-08-08 352 views
0

我正在使用Laravel php框架,我有一個帶有2個上傳字段的表單。這些領域正常工作,沒有問題。 .php代碼如下。if else語句

PS。對於那些不熟悉大括號的人來說,其刀片模板引擎中基本上只有<?php echo .... ?>

代碼

{{ Form::label('upload_files', 'Lataa bändin LAVAKARTTA, esim .jpg (tiedosto  pakollinen)'); }} 
{{ Form::file('upload_files', '', array('class' => 'form-field', 'form-text')); }} 

{{ Form::label('upload_files_raider', 'Lataa bändin tekninen RAIDERI esim .txt (tiedosto pakollinen)'); }} 
{{ Form::file('upload_files_raider', '', array('class' => 'form-field', 'form-text')); }} 

表單提交後我通過內容(文件)到我的上傳目錄。

在我的控制器我有這樣的代碼:

$a = $formsubmit['esiintyva_artisti']; 

// if no file dont upload 
// $a is used to give the filename a ending that correspons to a user 

if($_FILES['image']['error'] == 0){ 
//if(!isset($_FILES)){ 
    Input::upload('upload_files', 'public/uploads', $a . '-artistin-tai-bandin-lavakartta.jpg'); 
}; 

if($_FILES['image']['error'] == 0){ 
//if(!isset($_FILES)){ 
    Input::upload('upload_files_raider', 'public/uploads', $a . '-artistin-tai-bandin-raideri.txt'); 
}; 

繼承人的問題:

當我提交的形式,無任何上傳的文件,我得到一個錯誤:

Fatal error: Call to a member function move() on a non-object in /var/www/...../laravel/input.php on line 230 

謝謝提前社區!

回答

1

的錯誤可能是由你來檢查$ _FILES [「形象」]當它沒有被設置陣列,因爲你在表單中使用upload_filesupload_files_raider。嘗試使用輸入::文件檢查上傳文件(「upload_files」):

if(!is_null(Input::file('upload_files'))) { 
    Input::upload('upload_files', 'public/uploads', $a . '-artistin-tai-bandin-lavakartta.jpg'); 
} 

if(!is_null(Input::file('upload_files_raider'))) { 
    Input::upload('upload_files_raider', 'public/uploads', $a . '-artistin-tai-bandin-raideri.txt'); 
} 
0

的問題只是通過檢查NULL容易解決,如果語句:

 if ($file_upload == NULL) 
    { 
     return View::make('site.form')->with('message', 'Choose the file to be uploaded!'); 
    } 
    else 
    { 
     Input::upload('file_upload', 'public/uploads', $date.' '.$upload_file_name); 
    }