Tutoriel
php collecte des images distantes et les enregistre localement
2024-03-23 23:27:30
Auteur :admin
/**
* Collectez des images à distance
* @param string $url adresse du fichier distant
* @param string $filename Le nom du fichier enregistré (s'il est vide, il s'agit d'un nom de fichier généré aléatoirement, sinon c'est le nom du fichier d'origine)
* @param array $fileType types de fichiers autorisés
* @param string $dirName Le chemin où le fichier est enregistré
* @param int $type Comment obtenir des fichiers à distance
* @return json Renvoie le nom du fichier et le chemin d'enregistrement du fichier
*/
fonction download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1)
{
si ($url == '')
{
renvoie faux ;
}
// Récupère le nom de fichier d'origine du fichier
$defaultFileName = nom de base($url);
// Récupère le type de fichier
$suffixe = substr(strrchr($url, '.'), 1);
if (!in_array($suffix, $fileType))
{
renvoie faux ;
}
//Définit le nom du fichier après l'enregistrement
$nomfichier = $nomfichier == '' ? temps() . rand(0, 9) . '.' . $suffixe : $defaultFileName ;
// Récupère les ressources du fichier distant
si($type)
{
$ch = curl_init();
$délai d'attente = 30 ;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$fichier = curl_exec($ch);
curl_close($ch);
}
sinon
{
ob_start();
readfile($url);
$fichier = ob_get_contents();
ob_end_clean();
}
//Définir le chemin d'enregistrement du fichier
$nomrép = $nomrép ;
si (!file_exists($dirName))
{
mkdir($dirName, 0777, vrai);
}
// sauvegarde du fichier
$res = fopen($dirName . '/' . $fileName, 'a');
fwrite($res, $file);
fclose($res);
tableau de retour (
'nomfichier' => $nomfichier,
'saveDir' => $dirName
);
}