upload_file.html 5.16 KB
{include file="common/head"/}
<div class="admin-main layui-anim layui-anim-upbit" ng-app="hd" ng-controller="ctrl">
    <fieldset class="layui-elem-field layui-field-title">
        <legend>{$title}</legend>
    </fieldset>
    <blockquote class="layui-elem-quote">
        <a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm layui-btn-danger">
            <i class="fa fa-file-image-o"></i> GIF图片、短视频上传
        </a>
    </blockquote>
    <form class="layui-form layui-form-pane">
        <div class="layui-form-item">
            <label class="layui-form-label">名称</label>
            <div class="layui-input-4">
                <input type="text" name="name" ng-model="field.name" lay-verify="required" placeholder="{:lang('pleaseEnter')}图片/视频名称" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">图片/视频</label>
            <input type="hidden" name="pic" id="pic" value="{{field.pic}}">
            <div class="layui-input-block">
                <div class="layui-upload">
                    <button type="button" class="layui-btn layui-btn-primary" id="adBtn"><i class="icon icon-upload3"></i>点击上传</button>
                    <div class="layui-upload-list">
                        <img class="layui-upload-img" id="adPic">
                        <p id="demoText"></p>
                        <video src="" id="adVideo" controls="controls" style="width: 300px;height: 200px;display: none">
                            您的浏览器不支持 video 标签。
                        </video>
                    </div>
                </div>
            </div>
        </div>

        <div class="layui-form-item layui-form-text">
            <label class="layui-form-label">备注</label>
            <div class="layui-input-block">
                <textarea ng-model="field.content" placeholder="请输入图片/视频备注" name="content" class="layui-textarea"></textarea>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button>
            </div>
        </div>
    </form>
</div>
{include file="common/foot"/}
<script src="/static/common/js/angular.min.js"></script>
<script>
    var m = angular.module('hd',[]);
    m.controller('ctrl',['$scope',function($scope) {
        $scope.field = {type_id:'',ad_id:'',name:'',url:'',open:1,sort:50,pic:'',content:''};
        layui.use(['form', 'layer','upload'], function () {
            var form = layui.form, $ = layui.jquery, upload = layui.upload;
            if($scope.field.pic){
                adPic.src = $scope.field.pic;
            }
            form.on('submit(submit)', function (data) {
                // 提交到方法 默认为本身
                data.field.ad_id = $scope.field.ad_id;
                var loading = layer.load(1, {shade: [0.1, '#fff']});
                $.post("{:url('uploadFile')}", data.field, function (res) {
                    layer.close(loading);
                    if (res.code > 0) {
                        layer.msg(res.msg, {time: 1800, icon: 1}, function () {
                            location.href = res.url;
                        });
                    } else {
                        layer.msg(res.msg, {time: 1800, icon: 2});
                    }
                });
            });
            //GIF/视频上传
            var uploadInst = upload.render({
                elem: '#adBtn'
                ,url: '{:url("UpFiles/qncloud")}'
                ,before: function(obj){
                    //预读本地文件示例,不支持ie8
                    obj.preview(function(index, file, result){
                        if(result.substring(5,10)=="image"){
                            $('#adPic').attr('src', result); //图片链接(base64)
                            $('#adPic').css('display', 'block');
                            $("#adVideo").css('display', 'none');
                        }else{
                            $("#adVideo").get(0).src=result; //图片链接(base64)
                            $("#adVideo").css('display', 'block');
                            $('#adPic').css('display', 'none');
                        }
                    });
                },done: function(res){
                    if(res.code>0){
                        $('#pic').val(res.url);
                        return layer.msg('上传成功');
                    }else{
                        //如果上传失败
                        return layer.msg('上传失败');
                    }
                }
                ,error: function(){
                    //演示失败状态,并实现重传
                    var demoText = $('#demoText');
                    demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
                    demoText.find('.demo-reload').on('click', function(){
                        uploadInst.upload();
                    });
                }
            });
        });
    }]);
</script>