You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将curl文件上传转换为{httr}代码时,如何指定自定义文件名?

解决httr上传文件时自定义文件名的问题

你遇到的问题核心是:curl命令里的filename=new.txt并不是独立的表单参数,而是和file=@old.txt绑定在一起的属性,用来指定文件上传时的显示名称。直接把filename作为单独的表单字段提交,服务器自然不会识别。

正确的做法是在httr::upload_file()函数内部指定自定义文件名,同时别忘了加上curl里的Accept: application/json请求头。修改后的代码如下:

httr::POST(
  url = "https://somewhere.com/api/",
  httr::accept("application/json"),
  body = list(
    "token"    = "TOKEN_TOKEN",
    "content"  = "file",
    "action"   = "import",
    "record"   = "1",
    "field"    = "file_upload",
    "file"     = httr::upload_file("old.txt", filename = "new.txt")
  ),
  encode = "multipart"
)

这样修改后,filename=new.txt会作为file字段的一部分以multipart格式提交,和原curl命令的逻辑完全一致,服务器就能正确读取到自定义的文件名了。

内容的提问来源于stack exchange,提问作者the-mad-statter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:05:17