zoukankan      html  css  js  c++  java
  • 桥梁保护与监控-开发进度(二)

    新掌握的技能

    layui文件上传&图片上传

    解决方法如下:

    #文件上传存放的文件夹, 值为非绝对路径时,相对于项目根目录
    IMAGE_FOLDER  = 'static/photo/'
    
    #model模型上传存放文件夹,值为非绝对路径时,相对于项目根目录
    JSON_FOLDER='static/model/'
    
    #生成无重复随机数
    gen_rnd_filename = lambda :"%s%s" %(datetime.datetime.now().strftime('%Y%m%d%H%M%S'), str(random.randrange(1000, 10000)))
    #文件名合法性验证
    allowed_file = lambda filename: '.' in filename and filename.rsplit('.', 1)[1] in set(['png', 'jpg', 'jpeg', 'gif', 'bmp','gif'])
    
    app.config.update(
        SECRET_KEY = os.urandom(24),
        # 上传文件夹
        UPLOAD_FOLDER = os.path.join(app.root_path, IMAGE_FOLDER),
    
        #model文件夹
        UPLOAD_JSONFOLDER=os.path.join(app.root_path,JSON_FOLDER),
    
        # 最大上传大小,当前16MB
        MAX_CONTENT_LENGTH = 16 * 1024 * 1024
    )
    
    
    
    #照片上传
    @app.route('/photoupload', methods=['POST','OPTIONS'])
    def photoupload():
        res = dict(code=-1, msg=None)
        f = request.files.get('file')
        if f and allowed_file(f.filename):
            filename = secure_filename(gen_rnd_filename() + "." + f.filename.split('.')[-1])  # 随机命名
            # 自动创建上传文件夹
            print(filename)
            if not os.path.exists(app.config['UPLOAD_FOLDER']):
                os.makedirs(app.config['UPLOAD_FOLDER'])
            # 保存图片
            f.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            imgUrl = "../static/photo/"+filename
            print(imgUrl)
            res.update(code=0, data=dict(src=imgUrl))
        else:
            res.update(msg="Unsuccessfully obtained file or format is not allowed")
    
        return jsonify(res)

    layui生成Tab页,完成相应的操作后,母页面自动刷新

    if (data == "yes") {
                            //发异步,把数据提交给php
                            layer.alert("修改成功", {
                                icon: 6
                            },
    
                            function() {
                                // 获得frame索引
                                var index = parent.layer.getFrameIndex(window.name);
                                //关闭当前frame
                                parent.layer.close(index);
                                //刷新母页面
                                window.parent.location.reload();
                            });
    
                        }

    获取ajax返回的数据,作为全局数据使用

    在html页面添加一个hidden属性的input标签,将获取的ajax数据赋值到该标签内,即可在外部访问到ajax数据,同时还会保证async: true

    开发进度

    添加监测对象

    点击按钮,即可添加

     

     

     这里的页面采用Tab展示,包含地图坐标选择,自动补充经纬度以及地址,下面是图片上传,以及模型的上传

    添加项目

     修改项目

     删除项目

    总结

    本次开发,难点在于文件的上传,耗费的时间较多。下次开发准备完成:模糊搜索&配置(主要)

  • 相关阅读:
    C# 设置 Excel 条件格式 与 冻结窗口
    Exce折叠效果(数据组合)
    [一点一滴学英语]20050829
    Tencent Messenger
    很有趣的一篇文章:不使用Linux的五大理由
    Tencent Messenger (continued)
    N久没有听过这么搞笑的RAP了
    [一点一滴学英语]20050827
    [Eclipse笔记]SWT真正的优势不是快这么简单
    [一点一滴学英语]20050828
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/14383484.html
Copyright © 2011-2022 走看看