• dropzone


     1.引入css与js文件

    2.建立上传图片的路由到控制器

    3.视图文件form(action到上传路由)与dropzone(参数对应form的ID)选项js如下:

    @extends('layouts.main')
    
    @section('content')
        <h2>Gallery Show</h2>
        <h3>{{ $g->name }}</h3>
        <div class='row'>
            @foreach($g->images as $i)
                <div class='col-sm-3'><img src='upload/gallery_name/image/{{ $i->filename }}'></div>
            @endforeach
        </div>
        <form class='dropzone' action='/image' method="POST" id='addImages'>
            {{ csrf_field() }}
            <input type="hidden" name='gid' value='{{ $g->id }}'>
        </form>
        <a href='/gallery' class='btn btn-primary'>BACK</a>
    @stop
    
    @section('script')
        <script type="text/javascript">
        Dropzone.options.addImages = {
            maxFilesize : 2,
            acceptedFiles: 'image/*'
        };
        </script>
    @stop

    div的请求添加CSRF

        $("#addImages").dropzone({
            url: "/upload/avatar",
            maxFiles: 1,
            maxFilesize: 2,
            acceptedFiles: 'image/*',
            sending: function(file, xhr, formData){
                formData.append('_token', "{!! csrf_token() !!}");
            },
            success: function(file, response){
                console.log(response);
            }
        });

    4.控制器接受请求(验证文件大小、类型),取数据,保存图片,数据入库。最后返回code.

        public function store(Request $request)
        {
            //get the file from the request
            $file = $request->file('file');
            //set my file name
            $name = uniqid() . $file->getClientOriginalName();
            //move the file to correct location
            $success = $file->move('upload/gallery_name/image', iconv('UTF-8', 'GBK', $name));
         if($success){
    //save the image $image = Image::create([ 'gallery_id'=> $request->input('gallery_id'), 'name' => $name, 'created_by' => Auth::user()->id, 'size' => $file->getClientSize(), 'mime' => $file->getClientMimeType(), 'name' => $name ]);
           Response::json('success', 200);
        } return Response::json('error', 400);
    }

    6.JS 回调函数

    <script type="text/javascript">
        Dropzone.options.addImages = {
            maxFilesize : 2,
            acceptedFiles: 'image/*'//The file has been uploaded successfully. Gets the server response as //second argument. (This event was called finished previously) 
            success: function(file, response){
                 if ( ...){}
                 else{}
            }  
        };
        </script>

    参考  http://maxoffsky.com/code-blog/howto-ajax-multiple-file-upload-in-laravel/

  • 相关阅读:
    gzip 压缩格式的网站处理方法---sina.com 分类: python python基础学习 2013-07-16 17:40 362人阅读 评论(0) 收藏
    自定义系统命令缩写 分类: ubuntu 2013-07-15 17:42 344人阅读 评论(0) 收藏
    线程 ing 分类: python 2013-07-15 14:28 197人阅读 评论(0) 收藏
    [模板]排序
    [BFS] [洛谷] P1032 字串变换
    [二分答案][洛谷] P1316 丢瓶盖
    [二分] [POJ] 2456 Aggressive cows
    [贪心] [STL] [51nod] 做任务三
    [BFS] [记忆化] [洛谷] P1141 01迷宫
    [DFS] [记忆化] [洛谷] P1434 [SHOI2002]滑雪
  • 原文地址:https://www.cnblogs.com/fenle/p/4919013.html
Copyright © 2020-2023  润新知