对一个网站而言,有一个基本的不可缺少的功能,那就是文件上传。使用PHP预压来实现文件上传可谓是有得天独厚的优势的,那么今天,就一起来做一个关于无刷新实现的文件上传吧。
--------------------------------------------------------------------------------
普通表单
前端页面
Username
Password
后台处理
···
带有文件的表单
带有文件的表单和普通表单是有很大的区别的,首先我们要在表单上声明一个属性,如下:
刷新方式
谈到刷新模式,也就是点击完submit之后,页面跳转到业务处理界面。这也是我们普通方式实现的表单的数据提交。
前端界面
Username
Password
Photo
后台处理除了普通的表单数据之外,最重要的是处理文件信息。PHP内置了一个函数,可以方便的把上传过来的文件从临时的数据区转移到我们的目标文件夹,实现上传的业务逻辑。
move_uploaded_file('临时文件路径','目标文件路径');
无刷新方式
使用无刷新方式,与使用刷新方式的唯一的区别就是阻止了页面的跳转,我们通常会有两种方式来实现。 •在表单提交事件的末尾加上return false。
•使用h5相关方式。
其他的操作处理与带跳转的保持一致即可。
大文件上传
虽然PHP实现其文件上传很方便,也很快速。但是上传文件的大小并不是无限制的。默认来说,有两个因素会限制我们上传文件的大小。 •post的极值 •upload的极值 我们可以通过手动的更改PHP.ini配置信息来实现上传文件大小的控制。
POST极值
post_max_size = 200M
upload极值
upload_max_filesize=200M
上传细节
ajax对象有一个叫upload的属性,而且upload也作为一个对象而存在。其拥有一个叫onprogress的方法,我们可以通过监测这个方法,来查看文件上传过程中的百分比。
前端页面