python - Flask - 如何在不使用 file.content_type 的情况下获取文件扩展名
问题描述
我有这个代码:
@app.route("/mobile/upload", methods=["POST"])
async def upload_file():
uploaded_files = await request.files
uploaded_file = uploaded_files['file']
uploaded_file_name = generate_name()
fmt = content_type.get(uploaded_file.content_type)
if fmt not in content_type:
return f"That file type is not supported yet ({uploaded_file.filename}{uploaded_file.content_type}), adding now!"
full_name = uploaded_file_name + fmt
await uploaded_file.save("./static/" + full_name)
return redirect("/static/" + full_name)
我想做的是获取文件扩展名,如 .md、.txt 并自动将其添加到允许的内容类型列表中。
我查看了文档,但找不到我要查找的内容。
这是内容类型列表:
content_type = {
"image/png": ".png",
"image/gif": ".gif",
"image/jpeg": ".jpeg",
"text/plain": ".txt",
"text/html": ".html",
"audio/mpeg": ".mp3",
"video/mp4": ".mp4",
"text/x-generic": ".py",
"application/x-msdownload": ".exe"
}
提前致谢!
解决方案
看评论,你的答案似乎很清楚。
只允许任何文件类型,不要使用 MIME 类型。
感谢@Anonymous 和@JG
推荐阅读
- node.js - 对 nginx 后面的 Node.js 应用程序的 POST 请求未通过
- android - 毕加索语境错误
- javascript - 如何映射外部 JSON 数据?
- javascript - 如何在程序中的特定点调用 onEvent?
- python - 用辅助 y 轴绘制两个 interp1d 函数
- c - 小 C 指针问题
- c# - C#如何根据用户使用数据绑定选择的内容随机生成字符串
- html - 如何在屏幕尺寸更改期间将两个单独的居中单词保持在同一行?
- github - Does this .gitignore laravel makes sense when you're working with a team?
- python - 使用 opencv 在 OCR 期间识别变音字符