/**
 * Recoge imágenes remotas
 * @param string $url dirección de archivo remoto
 * @param string $filename El nombre del archivo guardado (si está vacío, es un nombre de archivo generado aleatoriamente; de lo contrario, es el nombre del archivo original)
 * @param array $fileType tipos de archivos permitidos
 * @param string $dirName La ruta donde se guarda el archivo
 * @param int $type Cómo obtener archivos de forma remota
 * @return json Devuelve el nombre del archivo y la ruta para guardarlo.
 */
función download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1)
{
    si ($url == '')
    {
        devolver falso;
    }

    // Obtener el nombre del archivo original del archivo
    $defaultFileName = nombre base($url);

    // Obtener tipo de archivo
    $sufijo = substr(strrchr($url, '.'), 1);
    if (!in_array($sufijo, $tipo de archivo))
    {
        devolver falso;
    }

    //Establece el nombre del archivo después de guardarlo
    $nombreDeArchivo = $nombreDeArchivo == '' ? tiempo() . rand(0, 9) . '.' . $sufijo: $nombredearchivopredeterminado;

    // Obtener recursos de archivos remotos
    si($tipo)
    {
        $ch = curl_init();
        $tiempo de espera = 30;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $tiempo de espera);
        $archivo = curl_exec($ch);
        curl_close($ch);
    }
    otra cosa
    {
        ob_start();
        leer archivo($url);
        $archivo = ob_get_contents();
        ob_end_clean();
    }

    //Establecer ruta para guardar el archivo
    $nombredir = $nombredir;
    si (!file_exists($dirName))
    {
        mkdir($dirName, 0777, verdadero);
    }

    //guardar archivo
    $res = fopen($dirName . '/' . $fileName, 'a');
    fwrite($res, $archivo);
    fclose($res);

    matriz de retorno (
        'nombre de archivo' => $nombre de archivo,
        'saveDir' => $dirNombre
    );
}