2012-10-16 5 views
1

J'ai développé un plugin wordpress qui utilise file_get_contents() pour récupérer des images depuis une URL distante et l'enregistrer dans le dossier local en utilisant la fonction fwrite. Le fichier image est enregistré dans un dossier local afin qu'il puisse être référencé plus tard.La fonction php file_get_contents enregistre un fichier image invalide dans mon nouveau serveur web

Cela fonctionne très bien dans un serveur Web 1. Mais quand j'ai installé le plugin dans wordpress maintenu dans un nouveau serveur web 2 différent, le fichier est créé dans le dossier local mais semble qu'il est corrompu. Le fichier est créé correctement pour les images de moins de 100 Ko, mais les fichiers plus grands créés correctement dans l'ancien serveur Web 1 sont corrompus lorsqu'ils sont récupérés et créés dans le serveur 2.

Voici le code que j'utilise pour récupérer des images et enregistrez le dossier local:

//$imgurl = url of the image file and $upload_path 
// is path where image will be stored 

$file = file_get_contents($imgurl) or die('File too large or inacessible'); 
$myFile = $upload_path . "\internal\folder\structure\\" . $file_name; 
$fh = fopen($myFile, 'w') or die("Error"); 
$fwrite = fwrite($fh, $file); 

if($fwrite === false) 
{ 
    echo "error"; 
} 
else 
{ 
    echo "file has been created ".$file_name; 
} 

fclose($fh); 

dans le serveur 1 cela fonctionne très bien, mais dans le serveur 2, le fichier est créé, mais ne peut pas l'ouvrir car il est corrompu. Je suppose que cela devrait probablement avoir à faire avec la configuration php du serveur 2 mais je ne suis pas très sûr alors j'attends votre aide avec impatience.

+1

vérifier si quelque chose sort avant cette fonction sur le serveur2 –

Répondre

Questions connexes