¿Cómo cargar un archivo multimedia a través de FTP y luego crear un mensaje adjunto con él?

2

Necesito subir un video muy grande. No puedo cargarlo a través del cargador incorporado ya que mi upload_max_filesize está configurado en solo 2M y no puedo anularlo (he establecido el tamaño de carga en 50M y el tamaño de publicación en 100M en .htaccess y php_info () si reflejar mis cambios)

Cuando intento usar la herramienta de carga basada en el navegador, aparece este mensaje:

  

El recurso solicitado   /wp-admin/media-new.php   no permite datos de solicitud con solicitudes POST, o la cantidad de datos proporcionada en la solicitud excede el límite de capacidad.

¿Cómo subo un archivo manualmente a través de FTP y lo hago aparecer en la Biblioteca de medios?

    
pregunta Mikael Dúi Bolinder 17.04.2014 - 01:11

2 respuestas

5

Sí, el complemento @Squideyes te sugiere , está perfectamente bien, y Debería hacer el truco.

Sin embargo, no me gustan las respuestas de enlace a complemento, así que aquí está la mía.

Si carga el archivo en una subcarpeta de la carpeta de subidas de WordPress (por defecto, wp-content/uploads , pero se puede cambiar fácilmente) que convertir un archivo desde allí a una publicación adjunta es bastante fácil a través de Código, solo es cuestión de llamar con argumentos apropiados:

El código

listo para copiar & pegar está disponible en Codex aquí , y se copia a continuación:

<?php
// $filename should be the path to a file in the upload directory.
$filename = '/path/to/uploads/2013/03/filname.jpg';
// The ID of the post this attachment is for.
$parent_post_id = 37;
// Check the type of tile. We'll use this as the 'post_mime_type'.
$filetype = wp_check_filetype( basename( $filename ), null );
// Get the path to the upload directory.
$wp_upload_dir = wp_upload_dir();
// Prepare an array of post data for the attachment.
$attachment = array(
  'guid'           => $wp_upload_dir['url'] . '/' . basename( $filename ), 
  'post_mime_type' => $filetype['type'],
  'post_title'     => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ),
  'post_content'   => '',
  'post_status'    => 'inherit'
);
// Insert the attachment.
$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
// Make sure that this file is included
require_once( ABSPATH . 'wp-admin/includes/image.php' );
// Generate the metadata for the attachment, and update the database record.
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );

Sin embargo, este código sin una forma de pasar dinámicamente una ruta de archivo para cargar es bastante inútil, pero crear una IU muy simple para el alcance es bastante fácil.

El flujo de trabajo debe ser:

  1. Enganche en algún lugar para generar un formulario dentro de la página upload.php . Al utilizar 'admin_notices' , el formulario se imprimirá en la parte superior de la página. El formulario enviará la solicitud a la misma página
  2. Enganche 'load-upload.php' para verificar la solicitud POST, hacer algunas verificaciones (un nonce, la capacidad del usuario, la existencia del archivo, verifique si el archivo ya está adjunto) y finalmente use el código de Codex para crear la publicación adjunta
  3. use 'admin_notices' hook para generar un comentario para el usuario, en ambos casos el archivo adjunto se crea o algo sale mal.

La parte más difícil de este flujo de trabajo es crear el archivo adjunto, y para ello ya tiene el código, las otras partes, ayudándose con el enlace que proporcioné, deben ser muy simples.

Sin embargo, hice un Gist de 3 archivos, con un complemento funcional que hace exactamente lo que se dijo en el flujo de trabajo anterior, encuentre aquí .

Allí agregué algunas líneas de javascript para permitir mostrar / ocultar el formulario dentro de upload.php .

A continuación puedes ver cómo funciona mi complemento:

    
respondido por el gmazzap 17.04.2014 - 05:46
0

Pruebe este complemento: enlace

Le permite cargar el archivo a través de un FTP y luego importarlo a través de admin. El complemento registra el archivo multimedia en la base de datos.

    
respondido por el Sammy The Salmon 17.04.2014 - 01:32

Lea otras preguntas en las etiquetas