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

如何将Flask请求上传的STL文件传入numpy-stl实现无需存文件计算体积

解决方案

numpy-stl的Mesh原生支持从类文件对象加载数据,无需将文件落地存储,你只需要用BytesIO包装读取到的字节流,或是直接传入Web框架上传的文件对象即可:

完整代码示例

from io import BytesIO
from stl import mesh

# 方法1:直接使用请求中的文件对象(更省内存,推荐)
upload_file = request.files['file']
stl_mesh = mesh.Mesh.from_file(
    filename=upload_file.filename,
    fh=upload_file
)

# 方法2:基于你已读取的字节数据生成类文件对象
# file_bytes = request.files['file'].read()
# file_like = BytesIO(file_bytes)
# stl_mesh = mesh.Mesh.from_file(filename="temp.stl", fh=file_like)

# 直接计算模型体积
model_volume = stl_mesh.get_volume()

注意说明

  • from_file方法的filename参数仅用来识别文件后缀判断格式,不会读取本地磁盘文件,你可以随意传入带.stl后缀的字符串,或是直接用上传文件的原始文件名
  • 如果确定上传的都是二进制STL文件,可以额外传入mode='rb'参数跳过格式自动检测,提升加载速度
  • 加载完成后直接调用get_volume()方法就能拿到模型体积,后续按你的报价规则计算返回即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:48:01