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文档的代码编写。

相关推荐
满天星83035771 小时前
【Qt】信号和槽(二) (自定义信号和槽)
开发语言·数据库·qt
朴马丁1 小时前
预制菜的“数字厨房”:PLM如何支撑菜品标准化与供应链高效协同?
大数据·人工智能·食品行业·流程行业plm
ab_dg_dp1 小时前
Android 17+ 提取 AIDL 生成 Java 文件的实用脚本
android·java·python
小沈同学呀1 小时前
SpringAI+MCPServer实战-StreamableHTTP协议打造企业级AI工具服务
人工智能·微服务架构·springai·mcpserver·javaai·streamablehttp
net3m332 小时前
一阶软件低通滤波器算法
人工智能·算法
武汉唯众智创2 小时前
边缘端部署 AI 心理分析:自研边缘主机跑通人脸 + 语音双模态推理,不用云端算力详解
人工智能·ai心理健康·校园心理健康·多模态推理·人脸情绪识别·语音情感分析·心理健康信息化平台
超哥--2 小时前
B站视频内容智能分析系统(三):B站视频自动采集
java·开发语言·音视频·ai编程
IT_陈寒2 小时前
Python的线程池把我坑惨了,原来异步不是万能的
前端·人工智能·后端
夏语灬2 小时前
cryptography:Python 密码学标准库的终极选择
开发语言·python·密码学