我这边是后端,编码用的python,现在在做一个app,
代码如下:
我本地测试,通过下面编码获取文件原名称是可以的,
但是前端那边通过手机端安卓上传文件,同样的代码获取到的原名称如:file_0842958E2FAC4598A8E55DF733CEC2CE.xls
不知道是不是经过什么处理了的;
求 帮我看看,是我这边通过其他方式 获取安卓上传文件的原名称吗,还是怎么解决
python代码如下!
获取安卓上传的文件原名称
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 【以下回答由 GPT 生成】
问题的关键在于前端通过安卓手机上传文件时,获取到的原始文件名并不是真正的原始名称,可能经过了一些处理。针对这个问题,可以尝试以下两种解决方法:
方法一:使用第三方库
可以使用
werkzeug
库中的secure_filename
方法,该方法可以处理文件名,删除非法字符,并返回一个安全的文件名。安装werkzeug
库(如果未安装)后,可以按照以下步骤解决问题:- 导入
werkzeug
库:from werkzeug.utils import secure_filename
- 使用
secure_filename
方法处理文件名:filename = secure_filename(uploaded_file.filename)
在这里,uploaded_file
是你从前端接收到的文件对象,通过filename
变量保存处理后的文件名。
下面是具体的代码示例:
from werkzeug.utils import secure_filename def get_original_filename(uploaded_file): filename = secure_filename(uploaded_file.filename) return filename
方法二:自定义处理逻辑
如果方法一不适用或不符合需求,可以自定义处理逻辑来解决问题。可以按照以下步骤进行处理:
- 导入
re
库:import re
- 使用正则表达式匹配文件名中的有效部分并提取:
filename = re.sub(r'^.*\/', '', uploaded_file.filename)
在这里,uploaded_file
是你从前端接收到的文件对象,通过filename
变量保存处理后的文件名。
下面是具体的代码示例:
import re def get_original_filename(uploaded_file): filename = re.sub(r'^.*\/', '', uploaded_file.filename) return filename
这两种方法都可以用来处理通过安卓手机上传的文件名,希望能解决你的问题。如果这两种方法都不适用,请提供更多的细节,我将尽力帮助你解决问题。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报- 导入
悬赏问题
- ¥15 远程访问linux主机超时
- ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
- ¥15 CPU卡指令整合指令数据都在图片上
- ¥15 火车票关联12306问题
- ¥15 odoo17处理受托加工产品
- ¥15 如何用MATLAB编码图三的积分
- ¥15 圆孔衍射光强随孔径变化
- ¥15 MacBook pro m3max上用vscode运行c语言没有反应
- ¥15 ESP-PROG配置错误,ALL ONES
- ¥15 结构功能耦合指标计算