Загрузка изображения с URL-адреса


Мне очень нравится, как SE загружает изображение с URL-адреса (я уверен, что многие так делают!). Я искал, но не могу найти, есть ли плагин или метод, аналогичный этому, доступный для WordPress?

Я знаю, что изображение может быть загружено и обработано непосредственно с URL-адреса , введя URL-адрес изображения в поле Имя файла после нажатия кнопки Загрузить/Вставить носитель>> С компьютера>> Выберите Файл

enter image description here

Это отличная функция, но не очень широко распространенная известный (я на самом деле только что обнаружил это). Я бы хотел что-то более похожее на SE, где есть опция, позволяющая пользователю добавлять URL-адрес изображения.

Как я могу просто добавить поле "Загрузить файл" на новую вкладку в загрузчике мультимедиа?

Вот учебник для Как добавить новую вкладку на странице загрузки мультимедиа в wordpress, но я хочу добавить на эту вкладку только текст и поле загрузки файла. Есть какие-нибудь идеи? Я не смог найти в Кодексе WordPress ничего, что имеет дело непосредственно с этой функцией или полем загрузки файла.

Спасибо.

Author: Stephen Harris, 2012-04-24

4 answers

Вы можете написать php-скрипт или сделать свой собственный плагин из этого кода здесь, я использовал его в одном из своих проектов, где мне пришлось импортировать большое количество изображений.

Сначала получите изображение и сохраните его в своем каталоге загрузки:

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

После этого мы можем вставить изображение в медиатеку:

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

И вуаля - поехали. вы также можете задать различные другие параметры в массиве вложений. если у вас есть массив URL-адресов или что-то в этом роде, вы можете запустить скрипт в цикле - но имейте в виду, что функции изображения занимают много времени и памяти для выполнения.

 27
Author: fischi, 2012-04-30 16:42:04

Вы можете использовать функции download_url() и wp_handle_sideload().

download_url()

Загружает URL-адрес в локальный временный файл с помощью HTTP-класса WordPress. Пожалуйста, обратите внимание, что вызывающая функция должна разорвать связь() с файлом.

wp_handle_sideload()

Обработка дополнительных загрузок, которая представляет собой процесс извлечения мультимедийного элемента с другого сервера вместо традиционной загрузки мультимедиа. Этот процесс включает в себя очистку имени файла, проверку расширений на mime введите и переместите файл в соответствующий каталог в каталоге загрузки.

Пример:

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

}
 12
Author: Rajilesh Panoli, 2017-05-29 00:06:22

Каталог плагинов WordPress - Захват и сохранение

Этот плагин позволяет вам захватывать изображения с удаленного URL-адреса и сохранять их в вашей собственной медиатеке wordpress. Поступая таким образом, вы никогда не беспокоились о том, что удаленное изображение было удалено его владельцем. Это также сэкономит вам время для загрузки изображения на локальный компьютер и повторной загрузки на ваш собственный wordpress.

После захвата изображения wordpress предложит вам либо "вставить в сообщение", либо "изменить атрибуты", просто например, после загрузки изображения.

 5
Author: Travis Pflanz, 2012-05-02 06:48:22

Существует по крайней мере три способа импорта удаленных изображений в WordPress:

  1. Возьмите и сохраните плагин, который упоминается в другом ответе. Этот плагин немного старше и сохраняет файл напрямую, поэтому миниатюры разных размеров не создаются. Последнее обновление более 2 лет назад на момент написания статьи.

  2. Плагин импорта внешних изображений поддерживает массовый импорт удаленных связанных изображений. Для этого вам может потребоваться увеличить лимит памяти PHP работать. Последнее обновление более 2 лет назад на момент написания статьи.

  3. Сохранить и импортировать изображение из плагина URL импортирует изображение с помощью собственных функций, поэтому оно правильно создано в галерее мультимедиа, и все эскизы и т. Д. Сделаны. Этот плагин в последний раз обновлялся в 2016 году и работает с WordPress 4.7

Раскрытие информации: Я создал Плагин Сохранения и импорта изображений из URL

 2
Author: user3096626, 2016-12-12 09:32:28