因此,如果您查看了我的上一篇文章,我上传了一个400MB的文件,最终导致我的VPS丢失了所有内存(确切地说是2000MB内存),因为它正在通过cURL将文件从一台服务器上传到另一台服务器因为我认为file_put_contents也是它如此资源化的原因。
这个代码还有其他替代方法可以节省我的内存使用量吗?
$file = base64_decode($_POST['file']);
file_put_contents($_POST['filename'], $file);
答案 0 :(得分:1)
您可以使用cUrl:cURL可用于从指定的URL获取数据,信息甚至整个网页。这对于在站点之间获取信息非常有用。示例代码:
$url = "http://yourwebsite.com/path/imgtoread.jpg";
$filetosave = PATH_ON_SERVER . "filetosave.jpg";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$fileraw = curl_exec($ch);
curl_close ($ch);
if(file_exists($filetosave)){
unlink($filetosave);
}
$fp = fopen($filetosave,'x');
fwrite($fp, $fileraw);
fclose($fp);
@var url url你的网站 @filetosave 保存文件的服务器上的路径 @fileraw 要保存的文件内容
注意:并确保在php.ini中启用allow_url_fopen