关于dify中http节点下载文件时,文件名不为原始文件名问题解决

我在使用http节点下载文件时,文件名默认为UUID,于是我设置了请求头

复制代码
Content-Disposition: attachment; filename*=UTF-8''{file_name}

但是发现还是没有变化

而且我发现设置的Content-Disposition完全没有起作用,并且返回的结果本身就是原始文件名,但是并没有启用,最后files中的filename返回的还是uuid。

我在github上发现有人有相同的问题,并且已经解决

When retrieving files using the HTTP component, the file name is incorrect, including custom plugins. Including the latest version 1.7.2 · Issue #24074 · langgenius/dify

简单来说就是需要去修改后端代码,如果是docker部署就需要去docker中修改,

修改的文件为 api/core/workflow/nodes/http_request/node.py,190行左右,修改为

python 复制代码
content_disposition_filename = None
if parsed_content_disposition:
    content_disposition_filename = parsed_content_disposition.get_filename()

filename = content_disposition_filename or url.split("?")[0].split("/")[-1] or ""
# ... rest of your logic

tool_file = tool_file_manager.create_file_by_raw(
    user_id=self.user_id,
    tenant_id=self.tenant_id,
    conversation_id=None,
    file_binary=content,
    mimetype=mime_type,
    filename=filename,  # <-- pass the filename here
)

随后就可以输出原始文件名的文件了

相关推荐
冯一川9 分钟前
Python 实现与 Ollama 运行的模型对话
人工智能·python
pt104312 分钟前
Cisco Splunk for AI Operations:AIOps企业实践
运维·人工智能·自动化
龙腾AI白云13 分钟前
大模型的幻觉怎么治
人工智能·机器学习·知识图谱
刘天远20 分钟前
Agent系统接入编排:评分模型、状态机与Python门禁
数据库·人工智能·python
AgentMaster25 分钟前
零售行业智能客服系统怎么选?3 大场景落地与 4 款平台对比实践
大数据·人工智能·算法
myaifas28 分钟前
如何选择智能体可视化设计的平台
人工智能·ai·ai编程
leizhen1984080937 分钟前
AI 不会注定失控,也不会自动被控制
人工智能·安全
远航计算机38 分钟前
客服记录怎么变成 AI 会引用的内容?五步清洗法
大数据·人工智能·算法·aigc
三声三视42 分钟前
封全站判“允许“,封目录判“禁止“:tri-geo 体检 74 分那次我拆了 31 行 judge_ua
人工智能·ai·skillhub·tri-skill·tri-geo