2015-12-17 3 views
5

У меня есть веб-приложение php, которое строится на laravel5. Я использую nginx. на моем веб-сайте есть контактная форма, в которой пользователь может загружать несколько файлов. Моя проблема - это когда пользователь загружает несколько файлов, не загружая их, а показывая загрузку в течение очень долгого времени. если вы загружаете один файл, а затем загружаете его мгновенно. я точно не знаю, почему именноnginx parllel uploading issue form submission

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

любые предложения?

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; 

      ` 

сайты с поддержкой 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

Вы получаете какую-либо ошибку, глядя на консоль? возможно, вы получаете ошибку от laravel из-за CSRF, а ваш js получает некоторую ошибку –

+0

ошибок нет в консоли .. если я загружаю один файл в его работу .. если загрузка нескольких файлов запроса даже не происходит на сервере – Dev

+0

Можете ли вы показать часть бэкэнда php-кода загрузки файлов? – Deep

ответ

0

Для первого - извините за мой плохой английский язык, о Глобиш))

Вы косяк отдавания больше информации. Но я пытаюсь объяснить.

Если вы хотите загрузить один файл:

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

и для внутреннего интерфейса:

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

Если вы хотите загрузить несколько файлов: ВАЖНО! Это два случая!

Случай один (я предполагаю, что это ваш текущий случай):

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

и для внутреннего интерфейса:

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

Дело два:

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

и для внутреннего интерфейса:

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

Ищите случай двухэлементный код, эквивалентный для одной загрузки. Как это работает? Поскольку браузер отправляет несколько файлов с отдельными запросами, по одному файлу на запрос. И вы можете показать статус загрузки для всех файлов и/или для текущего файла загрузки.

+0

На самом деле в моем вопросе. В форме несколько файлов могут быть загружены в одно поле файла, но можем ли мы отправить два файла в одной форме на сервер в одном экземпляре? Я пробовал это и сервер, не принимающий оба запроса одновременно. – Dev