file_put_contents

时间:2016-05-13 02:16:15

标签: php

因此,如果您查看了我的上一篇文章,我上传了一个400MB的文件,最终导致我的VPS丢失了所有内存(确切地说是2000MB内存),因为它正在通过cURL将文件从一台服务器上传到另一台服务器因为我认为file_put_contents也是它如此资源化的原因。

这个代码还有其他替代方法可以节省我的内存使用量吗?

$file = base64_decode($_POST['file']);
file_put_contents($_POST['filename'], $file);

1 个答案:

答案 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