我创建了一个用于发送文件和保存在服务器中的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无法在大字符串中生成。
如果有人知道这件事,请帮助我。
答案 0 :(得分:0)
答案很简单:file_get_contents()
返回false
,当传递给base64_encode()
时,返回empty string。
file_get_contents()
为什么失败?可能有多种原因:
chmod()
可能会有所帮助,但这可能是在其他地方引起的。file_get_contents()
将5 MB的文本加载到内存中。