base64_encode函数在输入大字符串时返回null字符串

时间:2015-02-04 06:48:58

标签: php encryption base64

我创建了一个用于发送文件和保存在服务器中的Web服务。文件格式为zip。文件大小可能因用户需求而异。

这是我将数据发送到服务器之前的代码。

   $filename = $_SERVER['DOCUMENT_ROOT'].'/data.zip';

   $data = file_get_contents($filename);
   $new_data = base64_encode($data); 

此new_data变量发送到服务器。 这适用于所有小文件。但是当我使用5 mb文件或更大的文件时,base64_encode返回null。

我的问题是base64_encode无法在大字符串中生成。

如果有人知道这件事,请帮助我。

1 个答案:

答案 0 :(得分:0)

答案很简单:file_get_contents()返回false,当传递给base64_encode()时,返回empty string

file_get_contents()为什么失败?可能有多种原因:

  • 您没有对该文件的读取权限。 chmod()可能会有所帮助,但这可能是在其他地方引起的。
  • 内存限制阻止file_get_contents()将5 MB的文本加载到内存中。
  • 文件系统或磁盘错误。 (不太可能,但绝对有可能。)