Home  >  Article  >  Web Front-end  >  Asynchronous file or image upload ajax

Asynchronous file or image upload ajax

php中世界最好的语言
php中世界最好的语言Original
2018-04-02 16:45:401196browse

This time I will bring you asynchronous file or picture upload ajax, what are the precautions for asynchronous file or picture upload ajax, the following is a practical case, let's take a look.

As we all know, most major websites now have a

file upload function. Users can save their favorite pictures or other files online so that they can be easily found when using them later. , but how to set up the file upload function of a web page? Today I will take image upload as an example to show you the specific steps of the file upload function.

In fact, there are two ways to upload files, one is from form submit submission, and the other is asynchronous submission through ajax. However, a problem with form form submission is that the interface will be refreshed every time the upload is completed, which cannot be implemented. Asynchronous upload, so now almost all websites use ajax asynchronous upload. Now I will show you how to implement ajax asynchronous upload.

First I create a form form, the code is as follows:

 
  用户名:
  密码:
  性别:男    女   头像:
    
 

After the creation is completed, first we need to get the information of the image uploaded by the user from this book, the code is as follows

var imgs=[];//存储图片链接
 //为文件上传添加change事件
 var fileM=document.querySelector("#file");
 $("#file").on("change",function(){
  console.log(fileM.files);
  //获取文件对象,files是文件选取控件的属性,存储的是文件选取控件选取的文件对象,类型是一个数组
  var fileObj=fileM.files[0];
  //创建formdata对象,formData用来存储表单的数据,表单数据时以键值对形式存储的。
  var formData=new FormData();
  formData.append('file',fileObj);
The formData here is the object we want to store file information now, and then we need to submit it to the backend using an ajax request:

  //创建ajax对象
  var ajax=new XMLHttpRequest();
  //发送POST请求
  ajax.open("POST","http://localhost/phpClass/file-upload/move_file.php",true);
  ajax.send(formData);
  ajax.onreadystatechange=function(){
  if (ajax.readyState == 4) {
   if (ajax.status>=200 &&ajax.status<300||ajax.status==304) {
   console.log(ajax.responseText);
   var obj=JSON.parse(ajax.responseText);
   alert(obj.msg);
   if(obj.err == 0){、
    //上传成功后自动动创建img标签放在指定位置
    var img =$("''");
    $(".con").append(img);
    imgs.push(obj.msg);
   }else{
    alert(obj.msg);
   }
   }
  }
  }
 });
Then after our request is successful, the backend must handle it accordingly. And save the pictures to the specified folder, so the corresponding PHP should complete these operations:

0,"msg"=>"文件移动成功");
  }else{
  $infor=array("err"=>1,"msg"=>"文件移动失败");
  }
 }else{
  $infor=array("err"=>1,"msg"=>"文件格式不合法");
 }
 echo json_encode($infor);
 }
?>
In this way, we have completed all the steps of file upload. If you want to upload your favorite pictures to yourself on the web page, I hope this code can help you!

Attachment: If you need to attach your other information when uploading the file, you only need to add this code after the front-end page request is completed:

//完成form表单数据的提交
 $('#btn').on('click',function(){
//  serializeArray()将form表单控件中的数据序列化成数组,数组中含有若干对象,对象包含对应控件的name和value
  var infor = $('#form').serializeArray();
//  console.log(infor);
  var stu = {};
  for (var i=0;i I believe you have read this article You have mastered the case method. For more exciting information, please pay attention to other related articles on the PHP Chinese website! 

Recommended reading:

Why garbled characters appear when ajax passes json

Summary of Ajax that novices must learn

The above is the detailed content of Asynchronous file or image upload ajax. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn