Ich habe einen guten virtuellen Host für Nginx, der gut funktioniert, ohne das Nginx-Upload-Modul zu verwenden.
Wenn ich den Upload-Fortschritt zu meiner Upload-Anfrage hinzufüge. Wie kann ich das lösen? Ich muss meine Dateien mit /?r=upload
oder /upload?foo=bar
hochladen und den Upload-Fortschritt mit /progress
oder etwas anderem verfolgen .
# static9-localhost.sweb
server {
# upload limit
# upload_limit_rate 10240;
# request size limitation
client_max_body_size 500m;
client_body_buffer_size 64k;
# document root
root /path/to/webapp/static/public/;
# index file
index index.php;
# server name
server_name static9-localhost.sweb;
# rewrite rules
rewrite "^/thumbnail/([A-Za-z0-9]{12})/(.*)/.*$" /index.php?r=thb&unique=$1&prm=$2 last;
# /
location @frontcontroller {
# expires
expires max;
# disable etag
if_modified_since off;
add_header 'Last-Modified' '';
# mvc rewrite
try_files $uri $uri/ /index.php?$uri&$args;
}
# upload progress
location /upload {
upload_pass @frontcontroller;
track_uploads proxied 600s;
}
# progress
location = /progress {
report_uploads proxied;
}
# error pages
error_page 404 /index.php?r=404;
error_page 403 /index.php?r=403;
error_page 500 501 502 503 504 /index.php?r=500;
# php5-fpm
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9003;
fastcgi_index index.php;
fastcgi_read_timeout 300;
include fastcgi_params;
}
# logs
access_log /path/to/webapp/logs/static_access.log;
error_log /path/to/webapp/logs/static_error.log;
}
Für den oben genannten virtuellen Host /upload/?X-Progress-ID=QLiFKnG5A81K
friert meine Upload-Anfrage ein. worin besteht das Problem?
Ich brauche eine Anfrage /?r=blahblah
, um auch dann gut zu funktionieren, wenn ich meine Upload-Datei in /upload
Benutzung sende /?r=upload
.
upload_progress <zone_name> <zone_size>
Anweisung für denlocation /upload
Block, der die Überwachung des Upload-Fortschritts ermöglichte, wie in der nginx-Dokumentation ( wiki.nginx.org/HttpUploadProgressModule#upload_progress ) angegeben.Antworten:
Ich habe meine Configs nach einem funktionierenden Beispiel durchsucht. Ich benutze Upload-Module und lade den Fortschritt so hoch:
Schauen Sie sich auch die Registerkarte Firebug Net an. Überprüfen Sie, ob Ihr Code eine korrekte json-Ausgabe erhält. Vielleicht liegt das Problem wirklich auf der Client-Seite.
quelle