Intereting Posts
Медленная скорость и высокая загрузка процессора для моего кода. Как его улучшить? Как реализовать два отдельных цветных изображения для каждого сообщения / страницы Как получить «дочерние файлы» из каталога, чтобы быть «активным» в WordPress Navwalker? Показать последние сообщения в категории с Twenty Ten theme widget Дайте детям уникальный идентификатор Как заставить пользователей сортировать в обратном порядке по умолчанию? Заказ сообщений по пользовательской таксономии в области администрирования Получать сообщения, обновленные или опубликованные за последние шесть часов Нет выбора главной страницы в настройке тем Просмотр и запрос сообщений с избранным изображением Как получить расширение файла изображений с разными расширениями в каталоге? Установите префикс префикса по умолчанию (автоматический) для тегов Почему я ограничен десятью постов в пользовательском цикле? Только постоянная ссылка по умолчанию работает mod_rewrite enabled Перенаправить все www.xyz.com на www.xyz.com/wordpress?

Правильный способ загрузки файла из источника в пункт назначения

Я пытаюсь загрузить файл из одного места в другое. Код работает отлично. Вот фрагмент кода:

Функция помощника – создать каталог в /uploads/{$dir_name}/ и вернуть пути.

 /** * Create folder in /uploads/{$dir_name}/ * @return array() */ function get_dirpath( $dir_name = 'test' ) { $wp_info = wp_upload_dir(); // SSL workaround. if ( is_ssl() ) { $wp_info['baseurl'] = str_ireplace( 'http://', 'https://', $wp_info['baseurl'] ); } // Build the paths. $dir_info = array( 'path' => $wp_info['basedir'] . '/' . $dir_name . '/', 'url' => $wp_info['baseurl'] . '/' . $dir_name . '/' ); // Create the upload dir if it doesn't exist. if ( ! file_exists( $dir_info['path'] ) ) { // Create the directory. mkdir( $dir_info['path'] ); // Add an index file for security. file_put_contents( $dir_info['path'] . 'index.html', '' ); } return $dir_info; } 

Путь – 1 – Использование функции PHP copy(){отлично работает} .

 $dir_info = get_dirpath( 'test' ); $remote_file = 'http://img.wordpressask.com/uploads/googlelogo_color_272x92dp.png'; $local_file = trailingslashit( $dir_info['path'] ) . basename( $remote_file ); if ( copy( $remote_file, $local_file ) ) { // Successfully copy file from URL } 

Путь – 2 – Использование WordPress WP_Filesystem_Direct{отлично работает}

 require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php'; require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php'; $my_filesystem = new WP_Filesystem_Direct( array() ); if ( $my_filesystem->copy( $remote_file, $local_file, true) ) { // Successfully copy file from URL } 

Оба, работает отлично.

Этот фрагмент кода:

  • Создайте файл googlelogo_color_272x92dp.png
  • В каталоге /wp-content/uploads/test/
  • Из источника http://img.wordpressask.com/uploads/googlelogo_color_272x92dp.png

Я думаю, мне нужно использовать Way - 2 . Но правильно ли это include files и создать new WP_Filesystem_Direct() ?

Я немного искал и нашел Копировать файл из плагина в мой каталог темы и Как использовать функцию copy () и вставить файл в каталог / wp-content / themes

Но, Не найдено никакого решения / фрагмента, которые используют Way - 2 .

Отредактировано:global $wp_filesystem делает то же самое с way - 2 . Но, его не работает (не знаю почему!).


обновленный

Кроме того, как получить правильное сообщение об ошибке, если он не может загрузить файл?

Solutions Collecting From Web of "Правильный способ загрузки файла из источника в пункт назначения"

Нет необходимости использовать API файловой системы WP, если вы пытаетесь получить доступ к каталогам, к которым веб-сервер имеет полный доступ. Это необходимо, главным образом, только тогда, когда вы хотите писать в каталоги, которые имеют ограниченный доступ, как каталог плагинов. С этой точки зрения два фрагмента совпадают.

То, что вы потенциально делаете неправильно, пытается получить доступ к удаленному ресурсу с помощью API файлов. Ваш первый фрагмент не будет работать на некоторых хостах, и я не уверен, будет ли работать API файловой системы WP. Более надежным способом является использование wordpress HTTP для получения содержимого файла с помощью wp_remote_get и сохранения его в папках uploads.

… последнее, что не нарушают авторские права, слишком много людей слишком много платят за такие вещи.