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

相关推荐
16月6日-晴几秒前
Java面向对象进阶—static
java·开发语言
爱跳舞的烤冷面1 分钟前
自学嵌入式第16天(数据结构篇--链表进阶操作)
开发语言
这张生成的图像能检测吗3 分钟前
(论文速读)基于鸡群算法变分模式分解的超低温振动传感器去噪
人工智能·信号处理·信号去噪·鸡群算法·模态分解
AI即插即用3 分钟前
即插即用系列 | IEEE TMI PLG-HN:原型学习引导的 CNN-Transformer 混合网络,攻克乳腺肿瘤分割难题
人工智能·深度学习·神经网络·学习·目标检测·cnn·transformer
持敬chijing14 分钟前
PHP开发-环境搭建-安装phpstudy-vscode工具
开发语言·vscode·php
AIyy86615 分钟前
2026小红书封面AI绘图工具横评:实测各平台出图质感与平台适配度
人工智能
自由能燃气设备23 分钟前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
Nomarsgo29 分钟前
3C电子智能制造产线嵌入式工控机解决方案——基于研华 MIC-770H 打造高性能、紧凑型智能制造边缘控制平台
人工智能·科技·视觉检测·电脑·制造
yinghuoAI202630 分钟前
电商卖货,本质上是“视觉的战争”
人工智能·ai·ai作画·ai作图·ai生视频
做前端的娜娜子36 分钟前
Embedding 向量模型:从语义表示到相似度计算
langchain·openai·掘金·金石计划