it-swarm.com.de

Haken, um den Dateinamen des Bildes beim Hochladen abzurufen

Ich möchte den vollständigen lokalen Dateinamen eines hochgeladenen Bilds abrufen, damit ich es in ein neues Verzeichnis kopieren und mit meinen eigenen Bildverarbeitungsskripten verarbeiten kann. Welche Haken/Aktionen sollte ich untersuchen, um dies zu erreichen?

Vielen Dank

1
Tom

Der Hook handle_upload wird nach dem Ausführen von wp_handle_upload aufgerufen und sendet ein benanntes Array, das aus 'file', 'url' und 'type' besteht. Sie könnten möglicherweise Code wie diesen verwenden, um ihn zu verwenden, je nachdem, was Sie erreichen möchten:

function process_images($results) {
    if( $results['type'] === 'image/jpeg' ) { // or /png or /tif / /whatever
        $filename = $results[ 'file' ];
        $url = $results[ 'url' ];

        // manipulate the image
    }
}

add_action('wp_handle_upload', 'process_images');

Bearbeiten: Wenn Sie auch die Anhang-ID benötigen, ist es möglicherweise besser, sich auf einer höheren Ebene anzumelden, z. B. Anhang hinzufügen/bearbeiten:

add_action('add_attachment', 'process_images');
add_action('edit_attachment', 'process_images');

in diesem Fall ist die gesendete Variable die attachment_id, von der Sie den Rest ableiten können, indem Sie Folgendes verwenden:

$metadata = wp_get_attachment_metadata( $results );
6
Simon Scarfe

Wenn Sie den Dateinamen und nicht nur den Pfad relativ zum Stammverzeichnis der Datei benötigen, müssen Sie die folgende Codezeile hinzufügen:

$filename = substr($results['file'], ( strrpos($results['file'], '/', -1) + 1 ) ); //add +1 to remove the slash at the beginning 

EDIT: Gerade nachdem ich diese strrpos() Lösung gepostet habe, habe ich eine beste gefunden:

$filename = basename($results['url']);
0
anou