Пример #1
0
def file_upload():
    ## 测试用户
    author = request.cookies.get("user_name")
    file_id = str(uuid.uuid1())
    url = "http://" + current_host + ":10018/files/download/" + file_id,
    helper = document_controller.gridfs_controller()
    if request.method == "POST":
        # data = request.get_data()
        # json_data = json.loads(data)
        file_data = request.files.get("file_data")
        file_name = request.form.get("file_name")
        file_type = request.form.get("file_type")
        class_name = request.form.get("class_name")
        author = author
        is_published = request.form.get("is_published")
        remark = request.form.get("remark")
        result = helper.upLoadFile(
            file_id=file_id,
            file_data=file_data,
            file_name=file_name,
            url=url,
            class_name=class_name,
            host=current_host,
            author=author,
            is_published=is_published,
            file_type=file_type,
            remark=remark
        )

        return jsonify(
            {
                "code": result["code"],
                "message": result["message"],
            }
        )
Пример #2
0
def get_public_files():
    helper = document_controller.gridfs_controller()
    if request.method == "GET":
        result = helper.get_public_infos()
        return jsonify(
            {
                "code": "20000601",
                "message": "获取文件信息成功",
                "result": result
            }
        )
Пример #3
0
def file_download(uuid):
    helper = document_controller.gridfs_controller()
    if request.method == "GET":
        file, file_name = helper.downLoadFile(
            file_id=uuid
        )
        if file is not None:
            helper.download_count(file_id=uuid)
            # response.headers['Content-Type'] = 'application/octet-stream'
            # response.headers['Content-Disposition'] = 'attachment;filename={0};filename*={0}'.format(quote("常用命令.txt"))
            response = Response(file, content_type='application/octet-stream;')
            response.headers["Content-disposition"] = 'attachment; filename=%s' % quote(file_name)
            return response
        else:
            file_data = {
                "code": "20000699",
                "result": "文件不存在无法下载"
            }
            return jsonify(file_data)
Пример #4
0
def filter_document_by_name(offset, page_index, doc_name, author):
    helper = document_controller.document_controller()
    grid_helper = document_controller.gridfs_controller()
    comment_helper = document_controller.comment_controller()
    if request.method == "GET":
        document_info = helper.filter_document_by_docname(doc_name=doc_name, author=author)
        file_infos = grid_helper.filter_file_like_name(file_name=doc_name, author=author)
        result = []
        count_of_files = len(file_infos)
        print(count_of_files)
        count_of_documents = len(document_info)
        print(count_of_documents)
        if count_of_documents > 0:
            for info in document_info:
                comment_count = comment_helper.count_of_comments(doc_id=info["doc_id"])
                pub = ""
                doc_type = ""
                if info["is_published"] == 1:
                    pub = "是"
                else:
                    pub = "否"
                if info["doc_type"] == "1":
                    doc_type = "在线文档"
                result.append({
                    "doc_id": info["doc_id"],
                    "title": info["title"],
                    "author": info["author"],
                    "host": info["host"],
                    "class_name": info["class_name"],
                    "doc_type": doc_type,
                    "is_published": pub,
                    "comment_count": comment_count,
                    "page_view": info["page_view"],
                    "download": info["download"],
                    "data": info["data"],
                    "update_time": info["update_time"].strftime("%Y-%m-%d %H:%M:%S")
                })
        if count_of_files > 0:
            for info in file_infos:
                comment_count = comment_helper.count_of_comments(doc_id=info["file_id"])
                result.append({
                    "doc_id": info["file_id"],
                    "title": info["file_name"],
                    "author": info["author"],
                    "host": info["url"],
                    "class_name": info["class_name"],
                    "doc_type": info["file_type"],
                    "is_published": info["is_published"],
                    "comment_count": comment_count,
                    "page_view": 0,
                    "download": info["download"],
                    "data": info['remark'],
                    "update_time": info["uploadDate"].strftime("%Y-%m-%d %H:%M:%S")
                })
        all_count = count_of_files + count_of_documents
        begin_index = int(offset) * (int(page_index) - 1)
        end_index = int(offset) * (int(page_index))
        final_result = result[begin_index:end_index]
        return {
            "result": final_result,
            "total": all_count
        }