python请求将gif作为octetstream而不是正确的mime类型发布

2024-05-05 03:48:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python3请求中复制以下curl调用。但是,当它发送文件时,由于某种原因,它的mimeType被作为大小为0的application/octet流发送。我已经尝试了我所能想到的请求调用的每一种变体,甚至尝试过对mimeType和size进行硬编码,但它并没有改变我的web服务器看到的请求。在

下面是我要复制的curl调用:

curl -X POST \
  http://myurl/api/v1/content/createFile \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -H 'postman-token: c35cc623-2cd8-1143-ba64-5870156f7498' \
  -F apiKey=ABCD \
  -F file=@bear.gif

下面是我正在尝试的python代码:

^{pr2}$

以下是我的web服务器从curl调用中看到的:

"apiKey" => "ABCD"
"file" => UploadedFile {#323 ▼
  -test: false
  -originalName: "bear.gif"
  -mimeType: "image/gif"
  -size: 1283057
  -error: 0
  #hashName: null
  path: "/tmp"
  filename: "phpizaC5J"
  basename: "phpizaC5J"
  pathname: "/tmp/phpizaC5J"
  extension: ""
  realPath: "/tmp/phpizaC5J"
  aTime: 2018-06-01 16:20:30
  mTime: 2018-06-01 16:20:32
  cTime: 2018-06-01 16:20:32
  inode: 1441804
  size: 1283057
  perms: 0100600
  owner: 48
  group: 48
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
}

下面是我从python请求发布时我的web服务器看到的情况:

"apiKey" => "ABCD"
"file" => UploadedFile {#323 ▼
  -test: false
  -originalName: "bear.gif"
  -mimeType: "application/octet-stream"
  -size: 0
  -error: 1
  #hashName: null
  path: ""
  filename: ""
  basename: ""
  pathname: ""
  extension: ""
  realPath: "/var/www/html/myurl"
  aTime: 1970-01-01 00:00:00
  mTime: 1970-01-01 00:00:00
  cTime: 1970-01-01 00:00:00
  inode: false
  size: false
  perms: 00
  owner: false
  group: false
  type: false
  writable: false
  readable: false
  executable: false
  file: false
  dir: false
  link: false
}

我做错什么了?在


Tags: 服务器webfalsetruesizetypecurlgif
1条回答
网友
1楼 · 发布于 2024-05-05 03:48:14

经过多次尝试和错误,我发现这实际上是由于phpweb服务器的upload_max_文件大小设置得太低所致。在

我的假设是文件被截断,因此它不再是有效的GIF。不过,我不打算研究真正的原因,因为这已经不是问题了。在

相关问题 更多 >