怎么在PHP中利用Ajax实现一个无刷新附件上传功能

  介绍

今天就跟大家聊聊有关怎么在PHP中利用Ajax实现一个无刷新附件上传功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>前端页面

& lt; form  action=啊?fileupload.php",方法=癙OST"比;   & lt; p> Username   & lt; p> Password   & lt; p> E-mail   & lt; input 类型=皊ubmit", value=https://www.yisu.com/zixun/"注册"/>      

<强>后台处理

print_r ($ _POST);   时间=美元username  $ _POSY[& # 39;用户名# 39;];   时间=美元password  $ _POST[& # 39;密码# 39;];   时间=美元email  $ _POST[& # 39;电子邮件# 39;];//,在服务器上和数据库内容信息对比即可,实现相关的业务逻辑。

···

,带有文件的表单

带有文件的表单和普通表单是有很大的区别的,首先我们要在表单上声明一个属性,如下:

& lt;形式enctype=& # 39;多部分/格式# 39;在

来告诉服务器,我们上传的表单包含有文件信息。

<>强刷新方式

谈到刷新模式,也就是点击完提交之后,页面跳转到业务处理界面。这也是我们普通方式实现的表单的数据提交。

<强>前端界面

& lt; form  action=啊?fileupload.php", enctype=岸嗖糠?form-data",方法=皃ost"比;   & lt; p> Username   & lt; p> Password   & lt; p> E-mail   & lt; p> Photo      & lt; input 类型=皊ubmit", value=https://www.yisu.com/zixun/"注册"/>

<强>后台页面

后台处理除了普通的表单数据之外,最重要的是处理文件信息。php内置了一个函数,可以方便的把上传过来的文件从临时的数据区转移到我们的目标文件夹,实现上传的业务逻辑。

函数(& # 39;临时文件路径& # 39;,& # 39;目标文件路径& # 39;);

<强>无刷新方式

使用无刷新方式,与使用刷新方式的唯一的区别就是阻止了页面的跳转,我们通常会有两种方式来实现。
, ?在表单提交事件的末尾加上假返回;

& lt; script>   var  form =, document.getElementsByTagName(& # 39;形式# 39;)[0];   时间=form.onsubmit 函数(){//,才能用do 一些东西   ,···//才能,阻止页面跳转   return 才能;假;   }      & lt;/script>

, ?使用类推相关方式。

& lt; script>   var  form =, document.getElementsByTagName(& # 39;形式# 39;)[0];   时间=form.onsubmit 函数(事件){//,才能用do 一些东西   ,···//才能,阻止页面跳转   event.preventDefault才能();   }      & lt;/script>

其他的操作处理与带跳转的保持一致即可。

<强>大文件上传

虽然PHP实现其文件上传很方便,也很快速。但是上传文件的大小并不是无限制的。默认来说,有两个因素会限制我们上传文件的大小。
, ?文章的极值
, ?上传的极值
我们可以通过手动的更改php . ini中配置信息来实现上传文件大小的控制只

<强>文章极值

post_max_size=200

<强>上传极值

upload_max_filesize=200

<强>上传细节

ajax对象有一个叫上传的属性,而且上传也作为一个对象而存在。其拥有一个叫onprogress的方法,我们可以通过监测这个方法,来查看文件上传过程中的百分比。

前端页面

& lt; ! DOCTYPE  html  PUBLIC “-//W3C//DTD  XHTML  1.0,过渡//EN",“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"比;   & lt; html  xmlns=癶ttp://www.w3.org/1999/xhtml"比;   & lt; head>   & lt; meta  http-equiv=癈ontent-Type",内容=皌ext/html;, charset=utf-8",/比;   & lt; title>文件上传示例& lt;/title>   & lt; script>   window.onload 才能=,函数(){   ,,,var  form =, document.getElementsByTagName (“form") [0];      ,,,form.onsubmit =,函数(evt) {   ,,,,,//,收集表单信息   ,,,,,var  fd =, new  FormData(形式);   ,,,,,var  ajax =, new  XMLHttpRequest ();      ,,,,,//,给Ajax设置文件上传的感知事件   ,,,,,ajax.upload.onprogress =,函数(evt) {   ,,,,,,,var  loaded =, evt.loaded;   ,,,,,,,var  total =, evt.total;   ,,,,,,,. getelementbyid (“progress") .value =(加载/总数)* 100;   ,,,,,}            ,,,,,ajax.onreadystatechange =,()函数,{   ,,,,,,,如果(ajax.readyState==4) {   ,,,,,,,,,警报(ajax.responseText);   ,,,,,,,}   ,,,,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在PHP中利用Ajax实现一个无刷新附件上传功能