2016-05-16 15 views
2

Ich habe eine benutzerdefinierte Seitenvorlage. Diese Vorlage hat ein benutzerdefiniertes Formular, mit dem der Benutzer eine Datei hochladen kann. Nun werden die hochgeladenen Dateien nicht in MySQL hochgeladen, sondern im Dateisystem/lokalen Ordner (lokaler Computer).Wie lade ich Dateien in der benutzerdefinierten WordPress-Seitenvorlage hoch?

Ich habe bereits ein PHP-Snippet, aber der Code funktioniert nicht Ich bekomme einen Fehler.

Wie behebt man das?

Snippet:

if(isset($_POST['submit'])){ 
    $lastName = isset($_POST['lastName']) ? $_POST['lastName'] : ''; 
    $resumeFile = isset($_FILE['resumeFile']['name']) ? $_FILE['resumeFile']['name']: ''; 

$info = pathinfo($_FILES['resumeFile']['name']); 
$ext = $info['extension']; 
$file_rename= $lastName.$ext; 

$target = 'C://xampp/htdocs/files/'.$file_rename; 
move_uploaded_file($_FILES['resumeFile']['tmp_name'], $target); 
} 

Fehler:

Notice: Undefined index: resumeFile .... on line 130 
Notice: Undefined index: extension .... on line 131 
Notice: Undefined index: resumeFile .... on line 135 

Antwort

1

Versuchen Sie, den folgenden Code-Schnipsel, andere als uploads Verzeichnis Standarddateien auf anderes Verzeichnis zu laden.

function change_my_upload_directory($dir) { 
    return array (
     'path' => WP_CONTENT_DIR . '/your-custom-dir', 
     'url' => $dir['baseurl'] . '/wp-content/your-custom-dir', 
     'subdir' => '/your-custom-dir', 
    ) + $dir; 
} 

if(isset($_FILES[ "resumeFile" ])) { 

    if (!function_exists('wp_handle_upload')) { 
     require_once(ABSPATH . 'wp-admin/includes/file.php'); 
    } 
    // Overrides the uploads directory location 
    add_filter('upload_dir', 'change_my_upload_directory');  

    $movefile = wp_handle_upload($_FILES[ "resumeFile" ], array('test_form' => false)); 

    // Remove the filter, so that subsequant uploads will be dsent to default uploads directory 
    remove_filter('upload_dir', 'change_my_upload_directory'); 

    return $movefile; 

}  
return false; 

wp_handle_upload wird ein Objekt zurückgeben, das die folgenden Eigenschaften enthält

$movefile[ 'file' ] // uploaded file object 
$movefile[ 'url' ] // current url (file location) of the file 
$movefile[ 'type' ] // uploaded file type 

Wenn wp_handle_upload schlägt es Fehlerobjekt zurückkehren wird, können Sie für gescheiterte Upload überprüfen wie diese

if(isset($movefile[ 'error' ])) { 
    // handle the error 
} 
+0

, was das ist Datei wird gespeichert? Ich muss die Dateien im Dateisystem/lokalen Computer speichern – User014019

+0

Die Datei wird in '/ wp-content/uploads /' Verzeichnis hochgeladen, ja das wird Ihr lokaler PC sein (wenn das Wordpress auf Ihrem lokalen Rechner ist) oder Ihr Server (Ihre gehostete Maschine in der Cloud) – Sark

+0

'test_form' ist der Name meiner HTML-Form, oder? – User014019

Verwandte Themen