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

相关推荐
小强闯江湖3 小时前
不只是让 AI 写代码:ViewCompose 把 Android UI 做成了可编译、可渲染的闭环
android·人工智能·kotlin
用户7783366132113 小时前
用 React Hook 封装搜索数据:useSerp 的防抖、缓存与错误处理
python·api
肆仲冬3 小时前
不用框架手写 AI Agent:ReAct 推理链和上下文管理的工程实践
人工智能
明月_清风4 小时前
发现一个超系统的 AI Agent 学习地图 —— Agent Atlas 推荐
人工智能·后端·agent
百度Geek说4 小时前
商业客户端Harness资产管理与应用实践
人工智能
MacroZheng4 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
小酒星小杜4 小时前
一个人,也能做出有人设、能追更、可商业化的漫画内容 IP
人工智能·产品·设计
字节跳动视频云技术团队4 小时前
从出片到出海:AI MediaKit 重塑短剧全链路生产力
人工智能·音视频开发
一点一木4 小时前
憋了7周没动静,OpenClaw 2.0带着16000个PR杀回来了
人工智能·github
anyup5 小时前
DeepSeek Harness 从零上手:从认识到写出第一个插件
人工智能·openai·deepseek