使用Create Item迁移文档库时,如何维持PDF/XLS的正确MIME类型?
解决文档库迁移中Excel/PDF文件类型显示为Word的问题
我之前处理文档库迁移时也碰到过一模一样的坑——Create Item操作看似方便,但对非Word文件的元数据处理确实有问题,它很容易默认沿用配置里的Word相关属性,导致文件挪过去了,类型却被错误标记成Word。分享几个亲测有效的解决办法:
最省心的方案:换用Copy/Move File动作
直接抛弃Create Item,改用Copy file或者Move file动作来迁移文件。这两个动作会完整继承源文件的所有元数据,包括MIME类型、文件类型甚至版本历史,完全不需要手动调整属性。如果迁移后还需要修改某些字段,再加个Update item动作就行,既保证类型正确,又能满足自定义需求。
必须用Create Item?手动指定关键属性
如果因为业务逻辑必须保留Create Item,那得手动强制设置两个核心属性:
- Content Type ID:找到目标库中对应文件类型的内容类型ID(比如Excel对应"Excel工作表"的ID,PDF对应"PDF文档"的ID,在库的内容类型设置里能查到,格式是类似
0x010100...的字符串),在Create Item的参数里直接指定这个ID。 - MIME Type:手动填入对应文件的MIME值:
- Excel(.xlsx):
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - PDF:
application/pdf - Word(.docx):
application/vnd.openxmlformats-officedocument.wordprocessingml.document
另外一定要确认Create Item里的File Content是源文件的原始二进制内容,而不是从Word模板生成的空内容,这是很多人踩的小坑。
- Excel(.xlsx):
检查目标库的默认内容类型
如果目标库的默认内容类型是"Word文档",那Create Item在没指定内容类型时会自动用默认值,这也会导致类型错误。可以临时把目标库的默认内容类型改成通用的"文档"类型,迁移完成后再改回去;或者直接在Create Item里强制指定对应文件的内容类型,从根源避免这个问题。
内容的提问来源于stack exchange,提问作者Steve Harvancik
相关产品推荐
相关产品推荐

