Estoy tratando de crear un archivo zip a partir de archivos adjuntos en WordPress.Php create zip file (de los archivos adjuntos post a wordpress)
me han tratado ambos métodos abajo - pero resulta en nada (ningún mensaje de error, no hay ningún archivo creados) - ¿Qué estoy haciendo mal (de nuevo ..)
No creo que el hecho de que aquellos Los archivos adjuntos de WordPress tienen algo que ver con eso, porque esos métodos también fallaron con archivos normales. por qué ?
-> Ver la respuesta.
$files_to_zip = array();// create files array
//run a query
$post_id = get_the_id();
$args = array(
'post_type' => 'attachment',
'numberposts' => null,
'post_status' => null,
'post_parent' => $post_id
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
$files_to_zip [] = wp_get_attachment_url($attachment->ID); // populate files array
}
}
print_r($files_to_zip);
$zip = new ZipArchive;
$zip->open('file.zip', ZipArchive::CREATE);
foreach ($files_to_zip as $file) {
$zip->addFile($file);
}
$zip->close();
y también este método:
$files_to_zip = array(); // create array
//run a query
$post_id = get_the_id();
$args = array(
'post_type' => 'attachment',
'numberposts' => null,
'post_status' => null,
'post_parent' => $post_id
);
$zip = new ZipArchive;
$zip->open('file.zip', ZipArchive::CREATE);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
$zip->addFile(wp_get_attachment_url($attachment->ID));
}
}
print_r($files_to_zip);// debug - return file names OK
$zip->close();
Ambos métodos devuelto nada .. será apreciado Cualquier ideas.
EDIT - print_r muestra para array $ files_to_zip
print_r($files_to_zip);
Array (
[0] => http://localhost/testing_evn/wp-content/uploads/2012/03/wrt-62316IMAG0659.jpg
[2] => http://localhost/testing_evn/wp-content/uploads/2012/03/wrt-85520_IGP0255.jpg
[3] => http://localhost/testing_evn/wp-content/uploads/2012/03/wrt-85520_IZTP0635.jpg
[4] => http://localhost/testing_evn/wp-content/uploads/2012/03/wrt-85520_ITG035t5.jpg
[5] => http://localhost/testing_evn/wp-content/uploads/2012/03/wrt-85520_IRTT7375.jpg)
.by usando get_attached_file() que producirá verdadera ruta (en algún momento sospeché que tal vez php no puede crear más de postal HTTP -. y esa es la respuesta corta Ver el largo abajo)
No existe una función PHP nativa llamada 'create_zip()' - por favor, muestre el código para esta función. Además, muestre el resultado de 'var_dump ($ files_to_zip)' – DaveRandom
Vea mi edición para una matriz de muestra. –