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

使用multipart/form-data上传图片时无法获取文件名的问题咨询

解决方案

当表单指定enctype="multipart/form-data"时,符合HTTP协议的处理规则是:普通表单字段会被解析到request.form,文件类型字段的所有内容只会被封装到request.files中,不会出现在request.form里,因此通过request.form.get("itemimg")获取不到值是正常现象。

你已经从request.files中拿到了文件对象,直接读取该对象的filename属性即可得到上传的文件名,不需要从request.form中取值,参考修改后的代码:

from werkzeug.utils import secure_filename
import os

# 路由内的业务逻辑
f = request.files['itemimg']
# 生成安全文件名,避免路径注入、特殊字符问题
safe_filename = secure_filename(f.filename)
# 保存文件到指定目录
f.save(os.path.join(app.config['UPLOAD_FOLDER'], safe_filename))
# 直接将文件名赋值给imgsrc存入数据库即可
imgsrc = safe_filename
# 后续执行SQLite3插入逻辑

注意事项:

  • 建议存入数据库的文件名和实际保存到磁盘的文件名保持一致,因此优先使用经过secure_filename处理后的文件名,避免后续访问文件时出现路径匹配错误
  • 如果需要保留用户上传的原始文件名,可以额外将f.filename存入独立的数据库字段,不影响文件的实际存储和访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:02