Upload de Imagem do URL

19

Eu realmente gosto da maneira como o SE envia uma imagem de um URL (tenho certeza que muitos fazem!). Eu tenho procurado, mas não consigo encontrar, existe um plugin ou um método semelhante a este disponível para o WordPress?

Eu sei que uma imagem pode ser carregado e copiado diretamente de um URL inserindo o URL da imagem na caixa Nome do arquivo depois que você clicar em Fazer upload / inserir mídia > > De Computador > > Escolha o arquivo

Esteéumótimorecurso,masnãoamplamenteconhecido(naverdade,acabeidedescobri-lo).EugostariadealgoumpoucomaiscomoSE,ondeháumaopçãoquepermiteaousuárioadicionaroURLdaimagem.

Comopossoadicionarsimplesmenteocampodearquivodeuploadaumanovaguianoaplicativodeenviodemídia?

Aquiestáumtutorialpara Como adicionar uma nova guia na página de Upload de mídia no wordpress , mas quero adicionar apenas algum texto e o campo de upload de arquivo para essa guia. Alguma ideia? Não consegui encontrar nada no WordPress Codex que lide com esse recurso ou o campo de upload de arquivo diretamente.

Obrigado.

    
por Travis Pflanz 24.04.2012 / 22:55

4 respostas

5

Diretório de Plugins do WordPress - Agarrar & Salvar

  

Este plugin permite que você pegue uma imagem do url remoto e salve no seu   própria biblioteca de mídia wordpress. Ao fazer isso, você nunca se preocupou se o   imagem remota foi removida pelo seu proprietário. Isso também economiza as etapas para   baixar a imagem para o computador local e fazer o upload novamente para o seu próprio   wordpress.

     

Depois de pegar a imagem, o wordpress solicitará que você "insira   para postar "ou" alterar atributos "como depois de enviar uma imagem.

    
por Travis Pflanz 02.05.2012 / 08:48
20

você pode escrever um script php, ou fazer o seu próprio plugin deste código aqui, eu usei em um dos meus projetos onde eu tive que importar um grande número de imagens.

Primeiro, pegue a imagem e armazene-a no seu diretório de upload:

$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);

depois disso, podemos inserir a imagem na biblioteca de mídia:

$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 );

e voila - aqui vamos nós. Você também pode definir vários outros parâmetros na matriz de anexos. Se você tem uma matriz de URLs ou algo assim, você pode executar o script em um loop - mas esteja ciente de que as funções de imagem ocupam muito tempo e memória para executar.

    
por fischi 30.04.2012 / 18:42
9

Você pode usar as funções download_url() e wp_handle_sideload() .

download_url()

  

Faz o download de uma URL para um arquivo temporário local usando a classe HTTP do WordPress. Por favor, note que a função de chamada deve desvincular () o arquivo.

wp_handle_sideload()

  

Identificador de sideloads, que é o processo de recuperar um item de mídia de outro servidor em vez de um upload de mídia tradicional. Esse processo envolve sanear o nome do arquivo, verificar as extensões do tipo MIME e mover o arquivo para o diretório apropriado no diretório de uploads.

Exemplo:

// 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
    }

}
    
por Rajilesh Panoli 06.01.2017 / 08:15
1

Existem pelo menos três maneiras de importar imagens remotas para o WordPress:

  1. Pegue e salve o plugin , que é mencionado na outra resposta. Este plug-in é um pouco mais antigo e salva o arquivo diretamente, portanto, miniaturas em tamanhos diferentes não são criadas. Última atualização há mais de 2 anos, no momento da redação.

  2. Importar plug-in de imagem externa tem importação em massa para imagens conectadas remotamente. Você pode precisar aumentar o limite de memória do PHP para que isso funcione. Última atualização há mais de 2 anos, no momento da redação.

  3. Salvar & Importar Imagem do Plug-in de URL importa a imagem usando funções nativas, portanto ela é criada corretamente na galeria de mídia e todas as miniaturas, etc., são feitas. Este plugin foi atualizado pela última vez em 2016 e funciona com o WordPress 4.7

Divulgação: criei o Save & Importar imagem do plug-in de URL

    
por user3096626 12.12.2016 / 10:32