wp_handle_upload – Die hochgeladene Datei konnte nicht nach wp-content / uploads / 2012/09 verschoben werden

Dies ist der Code, mit dem ich die Datei nach WordPress hochlade

define('WP_DEBUG', true); $filename = "test.png"; $tmpFile = download_url("http://url.com/testing/crop/".$filename); chmod($tmpFile, 0755); $mimeType = wp_check_filetype($_SERVER['DOCUMENT_ROOT'] . '/testing/crop/'.$filename); $file_array = array( 'file' => $_SERVER['DOCUMENT_ROOT'] . '/testing/crop/'.$filename, 'url' => $_SERVER['DOCUMENT_ROOT'] . '/testing/crop/'.$filename, 'type' => $mimeType['type'], 'size' => filesize($_SERVER['DOCUMENT_ROOT'] . '/testing/crop/'.$filename), 'name' => $filename, 'tmp_name' => $tmpFile ); $image = wp_handle_upload($file_array, array('test_form' => FALSE, 'test_upload' => FALSE, 'test_type' => FALSE)); print_r($file_array); print_r($image); unlink($tmpFile); ?> 

Dies ist der Fehler, den ich bekomme “Die hochgeladene Datei konnte nicht nach / home / xxxx / public_html / wp-content / uploads / 2012/09 verschoben werden.”

Was ich versuche, ist ein kleines PHP-Skript außerhalb von WordPress, das Bilder in seine Mediathek hochlädt und es dann posten, aber an dieser Stelle stehe ich beim Hochladen fest.

Alle Berechtigungen sind korrekt, da ich in der Lage bin, über den WordPress-Admin-Bereich hochzuladen.

Jede Hilfe wird sehr geschätzt.

Solutions Collecting From Web of "wp_handle_upload – Die hochgeladene Datei konnte nicht nach wp-content / uploads / 2012/09 verschoben werden"

Die function move_uploaded_file ist eine PHP-function:

http://php.net/manual/en/function.move-uploaded-file.php

Eine wichtige Sache, um davon von dieser Seite zu bemerken:

Diese function überprüft, ob die mit Dateiname angegebene Datei eine gültige Upload-Datei ist (dh, sie wurde über den HTTP-POST-Upload-Mechanismus von PHP hochgeladen). Wenn die Datei gültig ist, wird sie in den vom Ziel angegebenen Dateinamen verschoben.

Sie laden hier keine Datei wp_handle_upload , Sie laden sie von einer URL herunter, speichern sie lokal und versuchen dann, wp_handle_upload (die move_uploaded_file ) zu verwenden, um damit move_uploaded_file . Dies schlägt fehl, weil es sich nicht um eine hochgeladene Datei handelt.

Was Sie eigentlich tun möchten, ist ein “Sideload”, bei dem Sie eine Datei von der URL erhalten und sie direkt laden. WordPress hat eine function für diesen speziellen Fall, genannt wp_handle_sideload . Für den speziellen Fall von Bildern hat WordPress eine andere function namens media_sideload_image , die das gleiche tut, aber auch die gesamte Bildverarbeitung übernimmt.

Wenn Sie wirklich Dateien hochladen und nicht von einer URL aus laden möchten (dies könnte der Testcode sein, den Sie gerade versuchen), dann müssen Sie ein Datei-Upload-Formular $_FILES[0] , um den Inhalt der $_FILES[0] Parameter und übergeben Sie das an wp_handle_upload . Wenn Sie speziell versuchen, hochgeladene Bilder oder andere Elemente für die Medienbibliothek zu verarbeiten, verwenden media_handle_upload stattdessen media_handle_upload . Uploads über diese function müssen echt und nicht gefälscht sein.