Cargar imagen desde URL

19

Realmente me gusta la forma en que SE carga una imagen desde una URL (estoy seguro de que muchos lo hacen). He estado buscando, pero no puedo encontrar, ¿hay algún complemento o método similar a este disponible para WordPress?

Sé que una imagen puede ser subido y triturado directamente desde una URL ingresando la URL de la imagen en el cuadro Nombre de archivo después de hacer clic en Cargar / Insertar medios > > Desde la computadora > > Elegir archivo

Estaesunagrancaracterística,peronoesmuyconocida(enrealidadlaacabodedescubrir).MegustaríaalgomáscomoSE,dondehayunaopciónquelepermitealusuarioagregarlaURLdelaimagen.

¿Cómopuedoagregarsimplementeelcampodelarchivodecargaaunanuevapestañaenelcargadordemedios?

Aquíhayuntutorialpara Cómo agregar una nueva pestaña en la página Carga de medios en wordpress , pero quiero agregar solo un poco de texto y el campo de carga del archivo en esa pestaña. ¿Algunas ideas? No pude encontrar nada en el Códice de WordPress que trate con esta característica o el campo de carga de archivos directamente.

Gracias.

    
pregunta Travis Pflanz 24.04.2012 - 22:55

4 respuestas

5

Directorio de complementos de WordPress - Grab & Guardar

  

Este complemento te permite capturar la imagen de la URL remota y guardarla en tu   propia biblioteca de medios wordpress. Al hacerlo, nunca te preocupas si el   La imagen remota fue eliminada por su propietario. Esto también te ahorra pasos para   Descarga la imagen a la computadora local y cárgala de nuevo a tu cuenta.   wordpress.

     

Después de tomar la imagen, wordpress te indicará que "inserte   en la publicación "o" cambiar atributos "al igual que después de cargar una imagen.

    
respondido por el Travis Pflanz 02.05.2012 - 08:48
20

puedes escribir un script php, o hacer tu propio complemento de este código aquí, lo usé en uno de mis proyectos donde tuve que importar una gran cantidad de imágenes.

primero, obtenga la imagen y guárdela en su directorio de carga:

$uploaddir = wp_upload_dir();
$uploadfile = $uploaddir['path'] . '/' . $filename;

$contents= file_get_contents('http://mydomain.com/folder/image.jpg');
$savefile = fopen($uploadfile, 'w');
fwrite($savefile, $contents);
fclose($savefile);

después de eso, podemos insertar la imagen en la biblioteca de medios:

$wp_filetype = wp_check_filetype(basename($filename), null );

$attachment = array(
    'post_mime_type' => $wp_filetype['type'],
    'post_title' => $filename,
    'post_content' => '',
    'post_status' => 'inherit'
);

$attach_id = wp_insert_attachment( $attachment, $uploadfile );

$imagenew = get_post( $attach_id );
$fullsizepath = get_attached_file( $imagenew->ID );
$attach_data = wp_generate_attachment_metadata( $attach_id, $fullsizepath );
wp_update_attachment_metadata( $attach_id, $attach_data );

y voila - aquí vamos. También puede establecer varios otros parámetros en la matriz de archivos adjuntos. Si tiene una matriz de urls o algo así, puede ejecutar el script en un bucle, pero tenga en cuenta que las funciones de imagen requieren mucho tiempo y memoria para ejecutar.

    
respondido por el fischi 30.04.2012 - 18:42
9

Puedes usar las funciones download_url() y wp_handle_sideload() .

download_url()

  

Descarga una url a un archivo temporal local usando la clase HTTP de WordPress. Tenga en cuenta que la función de llamada debe desvincular () el archivo.

wp_handle_sideload()

  

Manejar las cargas de carga, que es el proceso de recuperación de un elemento de medios de otro servidor en lugar de una carga de medios tradicional. Este proceso implica la limpieza del nombre del archivo, la comprobación de las extensiones para el tipo mime y el traslado del archivo al directorio correspondiente dentro del directorio de las subidas.

Ejemplo:

// Gives us access to the download_url() and wp_handle_sideload() functions
require_once( ABSPATH . 'wp-admin/includes/file.php' );

// URL to the WordPress logo
$url = 'http://s.w.org/style/images/wp-header-logo.png';
$timeout_seconds = 5;

// Download file to temp dir
$temp_file = download_url( $url, $timeout_seconds );

if ( !is_wp_error( $temp_file ) ) {

    // Array based on $_FILE as seen in PHP file uploads
    $file = array(
        'name'     => basename($url), // ex: wp-header-logo.png
        'type'     => 'image/png',
        'tmp_name' => $temp_file,
        'error'    => 0,
        'size'     => filesize($temp_file),
    );

    $overrides = array(
        // Tells WordPress to not look for the POST form
        // fields that would normally be present as
        // we downloaded the file from a remote server, so there
        // will be no form fields
        // Default is true
        'test_form' => false,

        // Setting this to false lets WordPress allow empty files, not recommended
        // Default is true
        'test_size' => true,
    );

    // Move the temporary file into the uploads directory
    $results = wp_handle_sideload( $file, $overrides );

    if ( !empty( $results['error'] ) ) {
        // Insert any error handling here
    } else {

        $filename  = $results['file']; // Full path to the file
        $local_url = $results['url'];  // URL to the file in the uploads dir
        $type      = $results['type']; // MIME type of the file

        // Perform any actions here based in the above results
    }

}
    
respondido por el Rajilesh Panoli 06.01.2017 - 08:15
1

Hay al menos tres formas de importar imágenes remotas a WordPress:

  1. Agarra y guarda el complemento , que se menciona en la otra respuesta. Este complemento es un poco más antiguo y guarda el archivo directamente, por lo que no se crean miniaturas en diferentes tamaños. Última actualización hace más de 2 años en el momento de escribir este artículo.

  2. Importar complemento de imagen externa tiene una importación masiva de imágenes vinculadas remotas. Es posible que deba aumentar el límite de memoria de PHP para que esto funcione. Última actualización hace más de 2 años en el momento de escribir este artículo.

  3. Guardar & Importar imagen desde el complemento de URL importa la imagen usando funciones nativas, por lo que se crea correctamente en la galería de medios y se crean todas las miniaturas, etc. Este complemento se actualizó por última vez en 2016 y funciona con WordPress 4.7

Divulgación: creé la Save & Importar imagen desde el complemento de URL

    
respondido por el user3096626 12.12.2016 - 10:32

Lea otras preguntas en las etiquetas