星辰儿啊 2023-09-07 15:07 采纳率: 43.1%
浏览 3

获取安卓上传的文件原名称

我这边是后端,编码用的python,现在在做一个app,
代码如下:
我本地测试,通过下面编码获取文件原名称是可以的,
但是前端那边通过手机端安卓上传文件,同样的代码获取到的原名称如:file_0842958E2FAC4598A8E55DF733CEC2CE.xls
不知道是不是经过什么处理了的;
求 帮我看看,是我这边通过其他方式 获取安卓上传文件的原名称吗,还是怎么解决
python代码如下!

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-07 19:01
    关注

    【以下回答由 GPT 生成】

    问题的关键在于前端通过安卓手机上传文件时,获取到的原始文件名并不是真正的原始名称,可能经过了一些处理。针对这个问题,可以尝试以下两种解决方法:

    方法一:使用第三方库

    可以使用werkzeug库中的secure_filename方法,该方法可以处理文件名,删除非法字符,并返回一个安全的文件名。安装werkzeug库(如果未安装)后,可以按照以下步骤解决问题:

    1. 导入werkzeug库:from werkzeug.utils import secure_filename
    2. 使用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
    

    方法二:自定义处理逻辑

    如果方法一不适用或不符合需求,可以自定义处理逻辑来解决问题。可以按照以下步骤进行处理:

    1. 导入re库:import re
    2. 使用正则表达式匹配文件名中的有效部分并提取: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
    

    这两种方法都可以用来处理通过安卓手机上传的文件名,希望能解决你的问题。如果这两种方法都不适用,请提供更多的细节,我将尽力帮助你解决问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月7日

悬赏问题

  • ¥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 结构功能耦合指标计算