2016-05-13 13 views
0

Wenn Sie also meinen letzten Beitrag überprüft haben, habe ich eine 400MB-Datei hochgeladen, die meinen VPS den gesamten Speicher verloren hat (2000MB Speicher um genau zu sein), weil er eine Datei von einem Server auf einen anderen hochlädt Server über cURL Und weil ich denke, File_Put_Contents ist auch der Grund, warum es so ein Rohstoff Schwein ist.Alternative zu file_put_contents

Gibt es Alternativen zu diesem Code, um meine Speichernutzung zu speichern?

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

'fopen ($ file," w + ")' könnte eine Option sein: http://php.net/manual/en/function.fopen.php –

+0

Wie würde ich die Datei speichern, nur fwrite? –

+0

Ja, erstellen Sie einfach eine Variable mit '$ var = fopen ($ filename," w + ")', rufen Sie 'fwrite ($ var, $ file)' auf und schließen Sie dann mit 'fclose ($ var)'. –

Antwort

0

können Sie cUrl verwenden: Kräuseln kann verwendet werden, um Daten zu packen, Informationen oder sogar eine ganze Webseite von einer bestimmten URL. Dies kann sehr nützlich sein, um Informationen zwischen Websites zu erfassen. Beispielcode:

$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 Ihre Website @filetosave Pfad auf Ihrem Server, auf den @fileraw Inhalt der Datei

Hinweis zu speichern Datei speichern, und dafür sorgen, dass in der php.ini allow_url_fopen ist enable