zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    ASP.NET大闲话:ashx文件有啥用
    Silverlight之我见——制作星星闪烁动画
    今天写了一个简单的新浪新闻RSS操作类库
    继续聊WPF——设置网格控件列标题的样式
    继续聊WPF——如何获取ListView中选中的项
    继续聊WPF——Thumb控件
    继续聊WPF——进度条
    继续聊WPF——自定义CheckBox控件外观
    继续聊WPF——Expander控件(1)
    继续聊WPF——Expander控件(2)
  • 原文地址:https://www.cnblogs.com/fenle/p/4919013.html
Copyright © 2011-2022 走看看