laravel 文件上传

来源:互联网 发布:浙江大学网上缴网络费 编辑:程序博客网 时间:2024/05/22 08:29

官方文档 :http://laravel-china.org/docs/5.0/requests#files
讲的太粗略了,
控制器

<?php namespace App\Http\Controllers;use App\Http\Controllers\Controller;use Illuminate\Support\Facades\Request;use Illuminate\Support\Facades\Storage;use Illuminate\Support\Facades\File;use Illuminate\Http\Response;class FileEntryController extends Controller{    /**     * Display a listing of the resource.     *     * @return Response     */    public function index()    {        return view('file.index', compact('entries'));    }    public function add()    {        $file = Request::file('filefield');        dump($file);        $path = Request::file('filefield')->move("./","22.png");        dump($path->getPathname());        dump($path->getRealPath());        dump($path->getExtension());        return "ok";    }}说明:1、Request 引用的是use Illuminate\Support\Facades\Request;不是Illuminate\Http\Request,用后者会报错找不到静态方法直接用 use Request; 也是可以的2$file Symfony\Component\HttpFoundation\File\UploadedFile对象[api](http://api.symfony.com/2.5/Symfony/Component/HttpFoundation/File/UploadedFile.html)最终父类是php 内的SplFileInfo 类路径保存php服务的tmp路径下,如"F:\xampp\tmp\php307A.tmp"3、move() 第1个参数("/") 亲测 是在当前的盘符如E: ("./") 当前项目的public 路径4、move()返回值 Symfony\Component\HttpFoundation\File\File5、其它存储方法  Storage::disk('local')->put($var, File::get($file));  此时保存在项目上的 storage/app目录下

控制器

<form action="/file/add" method="post" enctype="multipart/form-data">    <input type="file" name="filefield">    <input type="hidden" name="_token" value="{{ csrf_token() }}" />    <input type="submit"></form><h1> Pictures list</h1>

路由

Route::any('/file/index', 'FileEntryController@index');Route::post('/file/add', 'FileEntryController@add');
0 0
原创粉丝点击