laravel框架——上传、下载文件

文件上传

在config文件夹下新建一个 项目名.php 

return [
    'title' => 'My Test',
    'posts_per_page' => 5,
    'uploads' => [
        'storage' => 'local',
        'webpath' => '/uploads', //上传文件存放的目录 在public文件夹下
    ],
];

 

view视图代码

{{--如果要上传文件,必须要在Form里面设置files为true--}}
{!! Form::open(array('url'=>'create/show','files'=>true)) !!}
    {{--name为iamge--}}
    {!! Form::file('image') !!}
    <br />
    {!! Form::submit('提交') !!}
{!! Form::close() !!}

 

<?php

namespace App\Http\Controllers;
//必须使用这个Request
use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Input;
use App\Test;

class CreateController extends Controller
{
    public function create(){
        return view('create.create');
    }

    public function show(Request $request){
        if ($image = $request->hasFile('image')){
            $file = $request->file('image');
            //判断文件上传过程中是否出错
            if(!$file->isValid()){
                return '文件上传出错!';
            }
            //或者文件夹路径 如果没有则返回false
            $destPath = realpath(public_path('uploads'));
            /**
             * 检查一个文件或目录是否存在
             * @param 文件或文件夹路径
             * @return
             */
            if(!file_exists($destPath)){
                /**
                 * 试图创建指定的目录的路径名.
                 * @param string $pathname 文件或文件夹所在路径.
                 * @param int $mode [optional] 默认情况下,默认的模式为0777(rwxrwxrwx)
                 *         读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1
                 *         r(Read,读取) w(Write,写入) x(eXecute,执行)
                 * @param bool $recursive [optional] <p>
                 * 允许嵌套目录中指定的路径创造。默认为假
                 * @param resource $context [optional] &note.context-support;
                 * @return bool true on success or false on failure.
                 */
                mkdir($destPath,0755,true);
            }
            /**
             * 返回原始文件名.
             * 这是提取请求的文件已经上传
             * @return string|null 原来的名字
             */
            $filename = $file->getClientOriginalName();
            /**
             * 将文件移动到一个新的位置.
             * @param string $directory 字符串目录目标文件夹
             * @param string $name      字符串名称的新文件名
             * @return 返回文件,一个表示新文件的文件对象
             * @throws FileException if, 如果因为任何原因,文件不能被移动
             */
            if(!$file->move($destPath,$filename)){
                 return '保存文件失败!';
            }
            return '文件上传成功!';
        }

        return '创建成功';
    }
}

  


下载

 

public function down()
    {
        return response()->download(realpath(base_path('public/uploads')).'/logo.png',
            'Laraveldown.png');
    }

 

posted @ 2016-06-23 15:14  偏执Dog  阅读(6363)  评论(0编辑  收藏  举报