wp_upload_bits () gibt den Dateipfad in localhost nicht richtig an

Ich versuche, Dateien in ein separates Verzeichnis innerhalb der uploads/ zu laden, und es gelingt mir, wp_upload_bits() . Ich bin glücklich mit allem und ich dachte, die Sache sei erledigt.

Aber wenn ich versuche, die Dateien zu löschen, da ich wp_add_attachment wp_add_attachment() usw. nicht verwende, muss ich die Datei mithilfe ihres Pfades wp_add_attachment() . Also habe ich das Dateiarray gespeichert. Wenn ich versuche, den Dateipfad zu verwenden, habe ich festgestellt, dass er kaputt ist.

 X:xampphtdocswordpress/wp-content/uploads/2017/05/filename.jpg 

Ich habe WAMP in Windows verwendet. Ich habe versucht, XAMPP zu verwenden. Und dann versuchte ich mit Nginx 1.10.1 – das Ergebnis ist das gleiche. Also habe ich dann das wp_upload_dir() überprüft:

 var_dump(wp_upload_dir()); 

Problem ist, dass es zurückkehrt:

 array(6) { ["path"]=> string(52) "X:\xampp\htdocs\wordpress/wp-content/uploads/2017/05" ["url"]=> string(53) "http://localhost/wordpress/wp-content/uploads/2017/05" ["subdir"]=> string(8) "/2017/05" ["basedir"]=> string(44) "X:\xampp\htdocs\wordpress/wp-content/uploads" ["baseurl"]=> string(45) "http://localhost/wordpress/wp-content/uploads" ["error"]=> bool(false) } 

Sie können sehen, das Problem ist in Schrägstrichen – eine schlechte Kombination von vorwärts ( / ) und zurück Schrägstriche ( \ ) sind da. Und ich denke, das ist es, was das Problem verursacht.

Ich weiß, dass ich den Dateipfad mit WP_CONTENT_DIR und einigen WP_CONTENT_DIR Strings WP_CONTENT_DIR , aber ich möchte so weit wie möglich bei den dynamischen Features bleiben.

Was kann ich jetzt machen?

BEARBEITEN

Ich habe hier ziemlich viele Arbeiten gemacht. BTW Ich denke nur dieser Teil ist der Schlüssel:

 $attachment_file = wp_upload_bits( $_FILES['my_attachment']['name'][$key], null, file_get_contents($_FILES['my_attachment']['tmp_name'][$key]) ); 

Der $key weil es mehrere Dateien gibt und für alle dasselbe tut.

Solutions Collecting From Web of "wp_upload_bits () gibt den Dateipfad in localhost nicht richtig an"

Ich habe genau das gleiche Problem (bekomme Pfade wie ‘X: xampphtdocswordpress / wp-content / uploads / 2017/05 / filename.jpg’ auf WAMP unter Windows). Das Problem scheint daran zu liegen, dass update_post_meta () beim Speichern der Daten Werte über stripslashes () übergibt .

Die Problemumgehung besteht darin, wp_slash () um Ihren Wert hinzuzufügen, den Sie an update_post_meta () übergeben.

Wahrscheinlich rufst du update_post_meta () so an:

 update_post_meta( $id, 'doesnt_work', $data ); 

Sie müssen wp_slash () zu den Daten hinzufügen, bevor Sie oder update_post_meta () aufrufen

 update_post_meta( $id, 'does_work', wp_slash( $data ) ); 

Das Endergebnis:

 array ( 'file' => 'C:\\wamp64\\www\\wpdev\\wpdev_test/wp-content/uploads/2017/08/filename', ....