开发者社区 > 云存储 > 对象存储OSS > 正文

用python上传本地的pdf和word的文件,pdf上传后打开为乱码,如何上传

image.png image.png

展开
收起
1964300194114835 2023-05-16 18:14:57 247 0
2 条回答
写回答
取消 提交回答
  • 可能是由于文件的编码导致上传后打开为乱码,您可以尝试使用二进制模式打开文件并上传。

    可以参考下面的代码,其中open()函数的第二个参数设置为'rb'表示以二进制模式打开文件:

    import os
    from pymongo import MongoClient
    from gridfs import GridFS
    
    client = MongoClient('mongodb://username:password@host:port/dbname')
    db = client['testdb']
    fs = GridFS(db)
    
    with open('/path/to/your/file.pdf', 'rb') as f:
       file_id = fs.put(f, filename=os.path.basename(f.name), content_type='application/pdf')
    
    print(f"File ObjectId: {file_id}")
    

    同样的,对于word文件可以更改content_type参数为'application/msword'进行传输。

    2023-05-17 15:10:52
    赞同 展开评论 打赏
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    在使用Python上传本地的PDF和Word文件到阿里云OSS时,如果上传后打开文件出现乱码,可能是因为文件编码格式不正确导致的。

    PDF和Word文件通常使用的是二进制格式,而不是文本格式。在上传文件时,需要以二进制方式读取文件内容,并以二进制方式上传到OSS。如果使用文本方式读取和上传文件,可能会导致文件内容被破坏,从而导致文件打开后出现乱码。

    需要注意的是,如果上传的文件是PDF或Word文档,建议在上传前检查文件的编码格式,并确保使用正确的编码格式进行读取和上传。可以使用Python的chardet库来检测文件的编码格式。

    2023-05-16 19:55:36
    赞同 展开评论 打赏

热门讨论

热门文章

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载