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"], } )
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 } )
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)
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 }