DocForge平台的设计与开发--文件上传接口的实现

目录

前言

环境的搭建

基础环境的初始化代码编写

代码初始化

文档上传接口的编写


前言

DocForge平台是基于FastAPI实现的doc文档的操作web平台。其主要目的是为了结合ocr实现对pdf转换为word的操作。目前市面上有很多的在线转换工具,但都有一个点,转换的格式要不出错,要不识别的很烂。但是从今天开始,手把手教会你开始实现一个基于自己的本地端结合AI在页面实现pdf的转换并实现优化和翻译等操作,本平台的开发时间会很长,更多的是对系统的开发的梳理,在篇幅完结的时候将项目开源,一起实现更多内容的开发,之后博主也会为爱发电。

环境的搭建

需要先安装的几个简单的环境后续需要添加在进行说明,因为博主是边开发边写操作记录文档的,所以需要点时间的。

FastAPI安装指令

bash 复制代码
pip install fastapi

uvicorn服务安装

bash 复制代码
pip install uvicorn

文档操作包

bash 复制代码
pip install python-multipart

OK目前这几个环境就OK了,因为本章涉及到的就只是文档的上传,后续才会涉及到ocr识别,在下一章节就会涉及到了。

基础环境的初始化代码编写

创建类似的几个文件夹然后需要在backend里面创建一个Fastapi.py文件这里面主要用来创建api接口的编写操作。

然后还要创建一个config文件用来环境一些路由地址的配置。

代码初始化

fastapi.py文件代码的初始化

python 复制代码
import uvicorn
from fastapi import FastAPI, UploadFile, File, HTTPException
from backend.setting import fastapi_host, fastapi_port
import os
app = FastAPI()

if __name__ == '__main__':
    uvicorn.run(app, host=fastapi_host, port=fastapi_port)

创建一个类似的代码文件,这样子就把uvicorn初始化完成了,直接运行文件就可以启动fastapi服务测试接口就行了。

python 复制代码
fastapi_host="127.0.0.1"
fastapi_port=8000

目前还没打算跨域,需要跨域的时候,博主后续会添加说明的。

文档上传接口的编写

python 复制代码
UPLOAD_DIR = "../uploads"
os.makedirs(UPLOAD_DIR, exist_ok=True)
@app.post("/uploads")
async def uploads(file:UploadFile=File(...)):
    file_ext = [".pdf",".doc",".docx"]
    name,ext=os.path.splitext(file.filename)
    if ext not  in file_ext:
        return ("文件类型不符和条件,请确保为[.pdf,.doc,.docx]等后缀文件")
    else:
        file_path = os.path.join(UPLOAD_DIR,file.filename)
        try:
            content = await file.read()
            with open(file_path,"wb") as buffer:
                buffer.write(content)
        except Exception as e:
            raise HTTPException(status_code=500, detail=f"文件保存失败: {str(e)}")
        finally:
            await  file.close()

        return {"file_name":file.filename,"file_path":file_path,"status":200}

这里面涉及到一些python里面的文档打开读写操作,详情可以看博主之前的文章。

这里主要就说明这个接口的流程就行了,把文件上传之后,切割获取file的内容,然后判断后缀名,是否满足后缀名列表的内容,满足就往下面走,然后进行编写文件后缀名组合然后读取写入本地的文件夹里面(后续可操作到MongDB或者cloudflea)

那么文件上传操作就到这里,下一章节就是ocr的安装然后将pdf转换为word文档的代码编写。

相关推荐
半杯咖啡半行码10 分钟前
C++ 编程与 STL 模板:从泛型编程到内存安全详解
开发语言·c++
caoerzhong22 分钟前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
IT_陈寒22 分钟前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
时间的拾荒人24 分钟前
Qt 界面优化:绘图详解 —— 从基础图形到图片处理
开发语言·qt·面试
用户83562907805135 分钟前
使用 Python 对 Excel 工作表进行排序
后端·python
yumgpkpm36 分钟前
Acceldata ODP(Open Data Platform)3.3.6.4(RHEL9)保姆级完整安装手册
大数据·人工智能·hive·hadoop·kafka·hbase·cloudera
程序员cxuan38 分钟前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员
MayZork42 分钟前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
邓工说电1 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
阿里云大数据AI技术1 小时前
Lance 数据检索怎么选,当然阿里云 Milvus 向量湖
人工智能