簡體   English   中英

Laravel 4上傳圖片表格

[英]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()

您需要在表單上啟用文件輸入 文件

在Laravel中,您可以使用:

Form::open('image/save', array('files'=> true))

要么

<form action="/images/save" method="post" enctype="multipart/form-data">

否則,您從文件輸入接收的所有內容都是文件名作為字符串。

如果您不使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM