2015-12-17 3 views
5

Ich habe eine PHP-Web-App, die auf Laravel5 buil. Ich benutze nginx. In meiner Website gibt es ein Kontaktformular, wo der Benutzer mehrere Dateien hochladen kann. Mein Problem ist, wenn der Benutzer mehrere Dateien hochlädt und nicht hochlädt, sondern das Laden für sehr lange Zeit anzeigt. Wenn Sie eine einzelne Datei hochladen, wird sie sofort hochgeladen. Ich bin mir nicht sicher warum genaunginx parlel Hochladen Problemformular Vorlage

OS: ubuntu 14.04 x64 
nginx/1.8.0 , PHP 5.6.14-1 

irgendwelche Vorschläge?

nginx.conf:

   ` 
worker_rlimit_nofile 40000; 

http { 

## 
# Basic Settings 
## 

proxy_connect_timeout 600s; 
proxy_send_timeout 600s; 
proxy_read_timeout 600s; 
fastcgi_send_timeout 600s; 
fastcgi_read_timeout 600s; 

sendfile on; 
tcp_nopush on; 
tcp_nodelay on; 
keepalive_timeout 65; 
types_hash_max_size 2048; 
server_tokens off; 
client_max_body_size 512m; 

server_names_hash_bucket_size 64; 
# server_name_in_redirect off; 
## 
# Gzip Settings 
## 

    gzip on; 
    gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 

    gzip_vary on; 
    gzip_proxied any; 

      ` 

sites-enabled default.conf:

fastcgi_connect_timeout 140; 
    fastcgi_send_timeout 400; 
    fastcgi_read_timeout 400; 
    fastcgi_buffer_size 128k; 
    fastcgi_buffers 4 256k; 
    fastcgi_busy_buffers_size 256k; 
    fastcgi_temp_file_write_size 256k; 
+0

Sie erhalten einen Fehler beim Betrachten der Konsole? vielleicht erhalten Sie einen Fehler von Laravel wegen CSRF und Ihre js erhalten einen Fehler –

+0

keine Fehler in der Konsole .. wenn ich einzelne Datei hochladen funktioniert .. wenn mehrere Dateien Anfrage sogar nicht gehen zum Server – Dev

+0

können Sie Stück Backend PHP-Code zeigen Upload-Dateien? – Deep

Antwort

0

Für erste - sorry für mein schlechtes Englisch, oh Globish))

Sie kippe geben Mehr Info. Aber ich versuche es zu erklären.

Wenn Sie hochladen wollen einzelne Datei:

<input type="file" name="upload_file"> 

und für Backend:

$_FILES['upload_file']['tmp_file'] 

Wenn Sie mehrere Dateien hochladen möchten: WICHTIG! Diese zwei Fälle!

Fall eines (i nehme an, dies Ihren aktuellen Fall ist):

<input type="file" name="upload_file[]"> 

und für Backend:

$_FILES['upload_file'][$arrKey]['tmp_file'] 

Fall zwei:

<input type="file" name="upload_file" multiple="multiple"> 

und für Backend:

$_FILES['upload_file']['tmp_file'] 

Suchen Sie nach Fall zwei - Backend-Code entspricht dem einzelnen Upload. Wie es funktioniert? Da der Browser mehrere Dateien mit getrennten Anforderungen sendet, eine Datei pro Anfrage. Und Sie können den Upload-Status für alle Dateien und/oder für die aktuelle Datei zum Hochladen anzeigen.

+0

Eigentlich in meiner Frage ist In einem Formular können mehrere Dateien in ein einzelnes Dateifeld hochgeladen werden, aber können wir zwei Dateifelder in derselben Form zum Server an der gleichen Instanz senden? Ich habe es versucht und Server es akzeptiert nicht beide Anfragen zur gleichen Zeit. – Dev