我正在使用Laravel php框架,我有一个包含2个上传字段的表单。这些领域正常工作,没有问题。 .php代码如下。
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
先谢谢社区!
答案 0 :(得分:1)
错误可能来自您检查 $ _ FILES ['image'] 数组时尚未设置,因为您使用 upload_files 和表单中的upload_files_raider 。尝试使用Input :: file('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');
}
答案 1 :(得分:0)
只需检查NULL即可轻松解决问题,if语句为:
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);
}