You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask应用中用Pydicom读取DICOM图像时出现‘File not found’错误的原因与解决

问题:Flask上传DICOM图像时出现FileNotFoundError错误

错误原因

  • 表单未配置文件上传编码:HTML表单上传文件时必须设置enctype="multipart/form-data",否则浏览器仅会传递文件名而非文件内容,后端无法获取实际的文件数据。
  • 错误的文件获取方式:request.form["input_image"]只能拿到客户端上传的文件名,而非文件对象或临时存储路径。dcm.read_file()尝试在服务器本地读取该文件名对应的文件,但服务器上不存在此文件,因此触发FileNotFoundError。

解决方法

1. 修正HTML表单配置

更新index.html中的表单标签,添加enctype="multipart/form-data"属性,确保浏览器正确发送文件数据:

<html>
    <body>
        <h1>Pneumonia Detection</h1>
        Please upload the image in DICOM format here
        <form action="/sub" method="POST" enctype="multipart/form-data">
            <p>Input Image</p>
            <input type="file" name="input_image" placeholder="Input Image">
            <input type="submit">
        </form>
    </body>
</html>

2. 调整Flask后端文件处理逻辑

使用request.files获取上传的文件对象,直接传递给pydicom读取(pydicom支持直接读取文件对象),或选择保存到服务器后再读取:

方式一:直接读取文件对象(推荐)

@app.route("/sub", methods=["POST"]) 
def submit():
    if request.method == "POST":
        # 获取上传的文件对象
        img_file = request.files["input_image"]
        if img_file.filename == '':
            return "No file selected"
        # 直接读取文件内容
        img_data = dcm.read_file(img_file, force=True)
        # 后续肺炎检测逻辑...
        return "File processed successfully"

方式二:保存文件到服务器后读取

import os

@app.route("/sub", methods=["POST"]) 
def submit():
    if request.method == "POST":
        img_file = request.files["input_image"]
        if img_file.filename == '':
            return "No file selected"
        
        # 创建uploads目录(如果不存在)
        upload_dir = "./uploads"
        if not os.path.exists(upload_dir):
            os.makedirs(upload_dir)
        
        # 保存文件到服务器
        save_path = os.path.join(upload_dir, img_file.filename)
        img_file.save(save_path)
        
        # 从保存路径读取DICOM文件
        img_data = dcm.read_file(save_path, force=True)
        # 后续肺炎检测逻辑...
        return "File processed successfully"

内容的提问来源于stack exchange,提问作者Ninad Mahajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:12:45