[英]Laravel 4 upload image form
我正在嘗試制作一個允許上傳文件並將其存儲在應用程序的public / upload文件夾中的表單。
我的表格是:
<form action="/image/save" method="post">
<input name="image" type="file" />
<input type="submit" value="Save"/>
</form>
和控制器:
public function save(){
$file = Input::file('image');
$destinationPath = 'upload/';
$filename = $file->getClientOriginalName();
Input::file('image')->move($destinationPath, $filename);
但是當我運行它時,我得到以下錯誤:在非對象上調用成員函數getClientOriginalName()
如果您不使用Blade生成這樣的表單
{{ Form::open(array('url' => 'foo/bar', 'files' => true)) }}
只需將此參數添加到表單標記即可
enctype="multipart/form-data"
我也遇到了與我的一個表單相同的問題,問題是表單沒有用選項定義, 'files' => true
,它告訴Laravel4表單助手定義一個enctype="multipart/form-data"
的表單enctype="multipart/form-data"
這是我做的:
在控制器中定義以下數組並將其傳遞給視圖,
$form_options = array (
'url' => 'path/to/defined/route',
'class' => 'form-horizontal',
'name' => 'newUser',
'files' => true
);
在您的視圖中,按如下方式定義表單:
{{ Form::open( $form_options ) }}
這將使用enctype="multipart/form-data"
定義您的表單
你必須得到如下文件名:
//Blade form
{{ Form::open_for_files('/image/save') }}
{{ Form::file('image') }}
{{ Form::close() }}
//get imagename
$filename = Input::file('image.name');
祝好運! :)
如果你使用Laravel表單樣式,你可以在array()
添加字段'files'=> true
{{ Form::open(array('url'=>'/images/save','role'=>'form','files'=> true)) }}
否則你可以使用html表單標簽
<form action="/images/save" method="post" enctype="multipart/form-data">
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.