Ich möchte aus einem, mittels metabox, Hochgeladenen pdf ein Thumbnail erstellen lassen und dieses dann als artikelbild für den Post speichern.
Der Upload klappt, allerdings wird kein Thumbnail erstellt.
Hier mein bisheriger Code:
PHP
$upload = wp_upload_bits($_FILES['wp_custom_attachment']['name'], null, file_get_contents($_FILES['wp_custom_attachment']['tmp_name']));
//print_r($upload);
$newname = $upload['file'] . '.jpg';
if (!file_exists($newname)) //falls datei noch nicht vorhanden umwandeln und in $folder speichern
{
// lese das pdf (erste seite)
$thump = new imagick($upload['file'] . '[0]');
// in jpg umwandeln
$thump->setImageColorspace(255);
$thump->setCompression(Imagick::COMPRESSION_JPEG);
$thump->setCompressionQuality(60);
$thump->setImageFormat('jpeg');
// verkleinern
$thump->resizeImage(290, 375, imagick::FILTER_LANCZOS, 1);
// auf dem server speichern
$thump->writeImage($newname);
$thump->clear();
$thump->destroy();
}
else {
print 'konnte Thumb nicht erstellen!';
}
if(isset($upload['error']) && $upload['error'] != 0) {
wp_die('There was an error uploading your file. The error is: ' . $upload['error']);
} else {
$url = $upload['url'] . '.jpg';
$tmp = download_url( $url );
//print $url . ' - ';
//print_r($tmp);
preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $file, $matches);
$file_array['name'] = basename($matches[0]);
$file_array['tmp_name'] = $tmp;
// If error storing temporarily, unlink
if ( is_wp_error( $tmp ) ) {
@unlink($file_array['tmp_name']);
$file_array['tmp_name'] = '';
}
$aid = media_handle_sideload( $file_array, $id, time().'-'.$_FILES['wp_custom_attachment']['name'] );
update_post_meta( $id, '_thumbnail_id', $aid );
add_post_meta($id, 'wp_custom_attachment', $upload);
update_post_meta($id, 'wp_custom_attachment', $upload);
}
Alles anzeigen
Hat wer ne idee was das falsch läuft?