2016-04-05 5 views
2

Guten Abend, Ich muss statischen Inhalt auf nginx Server 1.9 hochladen (so Upload-Modul funktionierte nicht mit dieser Version). Ich habe den Artikel "Nginx direct file upload without passing them through backend" gelesen und die Anweisungen Schritt für Schritt befolgt. Alles funktioniert für mich, außer Dateinamen im Nginx-Datenverzeichnis. Dateinamen sehen wie '0000000001', '0061565403' und so weiter aus. Was soll ich tun, um Dateien mit ihren korrekten Namen zu speichern? Hier ist meine nginx Lage config:Nginx-Datei-Upload mit client_body_in_file_only

location /upload { 
limit_except POST    { deny all; } 
client_body_temp_path   /data/; 
client_body_in_file_only  on; 
client_body_buffer_size  128K; 
client_max_body_size   50M; 
proxy_pass_request_headers  on; 
proxy_set_header content-type "text/html"; 
proxy_set_body     $request_body_file; 
proxy_pass      http://localhost:8080/ 
proxy_redirect     off;} 

Antwort

2

Sie HTTP-Header im Client den richtigen Namen zu übergeben (was immer das ist), zum Beispiel verwenden können:

Correct-Filename: my-correct-filename 

Und da Sie verwenden proxy_pass_request_headers on ist die Kopfzeile im Backend sichtbar, wo Sie sie beim Speichern der Datei verwenden können. Bei der Verwendung von Headern ist der Dateiname jedoch auf die Verwendung von ASCII-Zeichen beschränkt, siehe this answer.