【问题标题】:Get base64 encoding when uploading a file上传文件时获取base64编码
【发布时间】:2018-10-29 20:00:44
【问题描述】:

我在使用 PHP 上传文件时尝试获取文件的 base64 编码:

$sound = base64_encode( file_get_contents( $_FILES["sound"]["tmp_name"] ) );

但它正在返回:

注意:file_get_contents():发送 8192 字节失败,errno=104 Connection reset by peer

是否可以在不将文件保存到服务器的情况下执行此操作?

【问题讨论】:

  • $_FILES["sound"]["tmp_name"] 是某种 URL 吗?
  • 我不确定你的意思是什么?它的 PHP 代码
  • 您的错误消息表明file_get_contents 正在进行 HTTP 调用,这对于文件上传来说是不常见的。确保$_FILES["sound"]["tmp_name"] 包含您期望的内容(通常应该类似于/tmp/<random characters>),但我认为您的情况并非如此,这很奇怪。
  • ["tmp_name"]=> 字符串(27) "/home/i/t/itl/tmp/phpBgtpve"
  • 这很奇怪..因为“对等连接重置”是网络消息...

标签: php


【解决方案1】:

文件名似乎太长了。请检查您传递给 file_get_contents 的字符串的长度:

echo strlen($_FILES["sound"]["tmp_name"]));

据我所知,您的服务器可能配置不正确。如果文件上传的时间不太长,可能需要检查临时路径。

【讨论】:

  • 27 个字符太长了?似乎不太可能。
  • 他说的是:["tmp_name"]=> string(27) "/home/i/t/itl/tmp/phpBgtpve"
  • 这个数字在不同的服务器上会有所不同:) 我想知道查理的设置。
  • 你的建议是不可能的!因为大多数配置文件的路径长度都超过 27,并且大多数守护进程不会在该系统上启动
  • 27 是要打开的文件的路径长度,而不是最小路径长度
猜你喜欢
  • 2019-06-21
  • 1970-01-01
  • 2013-03-01
  • 2016-03-17
  • 1970-01-01
  • 2019-02-26
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多