从手机上传文件发送应用程序/八位字节流

Posted

技术标签:

【中文标题】从手机上传文件发送应用程序/八位字节流【英文标题】:Upload file from mobile phone sends application/octet-stream 【发布时间】:2016-11-17 20:45:51 【问题描述】:

我有一个简单的视频文件上传表单。它可以在普通 PC 上运行,但是从移动设备 (android) 上传时,它会将文件 mime 类型发送为 application/octet-stream,文件 null 和错误 1。

我不知道该怎么办。有人可以帮忙吗?

这是表格

<input type="file" id="video_link" name="video[link]" class="form-control" accept="video/*">

这是在移动设备上提交的视频的 var_dump

UploadedFile #9 ▼
  -test: false
  -originalName: "VID-20160712-WA0029.mp4"
  -mimeType: "application/octet-stream"
  -size: 0
  -error: 1
  path: ""
  filename: ""
  basename: ""
  pathname: ""
  extension: ""
  realPath1970: "/app/web"
  aTime: 1970-01-01 00:00:00
  mTime: 1970-01-01 00:00:00
  cTime: -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

这是从普通电脑浏览器上传的文件转储

VideoController.php on line 59:
UploadedFile #14 ▼
  -test: false
  -originalName: "videoplayback.mp4"
  -mimeType: "video/mp4"
  -size: 684535
  -error: 0
  path: "C:\wamp\tmp"
  filename: "phpC612.tmp"
  basename: "phpC612.tmp"
  pathname: "C:\wamp\tmp\phpC612.tmp"
  extension: "tmp"
  realPath: "C:\wamp\tmp\phpC612.tmp"
  aTime: 2016-07-14 05:43:25
  mTime: 2016-07-14 05:43:25
  cTime: 2016-07-14 05:43:25
  inode: 0
  size: 684535
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
        linkTarget:"C:\wamp\tmp\phpC612.tmp"

【问题讨论】:

你能发布你的代码吗? 好的,刚刚编辑,谢谢 如果您删除 accept="video/*" 并尝试上传 JPG 或其他文件怎么办? 不,我把它放在那里认为它会有所作为,但事实并非如此。要么我删除它。 【参考方案1】:

也许这会有所帮助。

根据html form enctype:

multipart/form-data:没有字符被编码。当您使用具有文件上传控件的表单时,此值是必需的

确保您的form 元素的属性enctype 设置为multipart/form-data

【讨论】:

以上是关于从手机上传文件发送应用程序/八位字节流的主要内容,如果未能解决你的问题,请参考以下文章

Webapp2 请求应用程序/八位字节流文件上传

文件上传错误“应用程序/八位字节流”

Spring文件上传内容类型验证,总是八位字节流?

将字符串转换为应用程序/八位字节流 Java

DropBox API 应用程序/八位字节流标头

MIME、八位字节流和 Uploadify