PHP ajax 上传大文件带进度条

服务器设置

. 修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini

(1)post_max_size = 50M      #PHP可接受的最大POST数据

(2)upload_max_filesize = 50M   #文件上传允许的最大值

(3)max_execution_time = 300   #每个脚本的最大执行时间,秒钟(0则不限制,不建议设0)

2. 修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf (如果忘了配置文件的具体位置,可以使用 locate nginx.conf 查找)

(1)client_max_body_size 50m   #客户端最大上传大小 50M

3. 重启PHP:/etc/init.d/php-fpm restart

4. 平滑重启Nginx:/usr/local/nginx/sbin/nginx -s reload

html

 

说明关于:

1、后端就是正常的php 上传文件处理

2、进度条样式用的是 layui

3、 var formData = new FormData($("#importForm")[0]); 获取表单的数据

FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。如果表单enctype属性设为multipart/form-data ,则会使用表单的submit()方法来发送数据,从而,发送数据具有同样形式。

 

4、为何要 $("#importForm")[0] ,加0

jQuery是一个伪数组对象,本身是对象,能表现出来数组的特点: 有length属性,能够用下标取值;

$(".someClass") // 这个时候将所有匹配到DOM元素对象放在jQuery维护的数组中;

$("#id") // 这个时候将所有匹配到DOM元素对象放在jQuery维护的数组中;

在数组的特征外,jQuery还可以调用next(), last()等方法(返回结果也还是jQuery对象,jQuery链式功能);

如下图:

 

 

 

你可能感兴趣的:(php,js)