Heim >Backend-Entwicklung >PHP-Tutorial >Javascript – Ajax-Upload-Dateihintergrund verwendet $_files, um leere Dateien zu akzeptieren
Javascript-Code:
<html><head><meta charset="UTF-8"> <style> img{ max-width:80%; display:block; } </style> </head><body><input id="img" type="file"> <p id="text"></p> <script> var up=function(o,success,x,file){ if(typeof success=='function') file=o; x=new XMLHttpRequest() x.open('POST','http://127.0.0.1/up.php?r='+Math.random(),1) x.onload=function(r){ r=x.responseText if(success)//if r.pid and the twice parameter existing return success(r) } x.send(file) } </script> <script> img.onchange=function(){ if(!this.files||!this.files[0]) return alert('选取文件出错!') var imgfile=this.files[0] if(imgfile.type.indexOf('image')!=0) return alert('这不是一个图像或音频!') up(imgfile,function(r){ text.innerHTML=r }) } </script> </body> </html>
Backend-Code:
<?php header('Access-Control-Allow-Origin:*'); header("Content-Type:text/json;charset=utf-8"); echo json_encode($_FILES); ?>
Die Rückgabedaten sind []
Antwortinhalt:
Javascript-Code :
<html><head><meta charset="UTF-8"> <style> img{ max-width:80%; display:block; } </style> </head><body><input id="img" type="file"> <p id="text"></p> <script> var up=function(o,success,x,file){ if(typeof success=='function') file=o; x=new XMLHttpRequest() x.open('POST','http://127.0.0.1/up.php?r='+Math.random(),1) x.onload=function(r){ r=x.responseText if(success)//if r.pid and the twice parameter existing return success(r) } x.send(file) } </script> <script> img.onchange=function(){ if(!this.files||!this.files[0]) return alert('选取文件出错!') var imgfile=this.files[0] if(imgfile.type.indexOf('image')!=0) return alert('这不是一个图像或音频!') up(imgfile,function(r){ text.innerHTML=r }) } </script> </body> </html>
Backend-Code:
<?php header('Access-Control-Allow-Origin:*'); header("Content-Type:text/json;charset=utf-8"); echo json_encode($_FILES); ?>
Die zurückgegebenen Daten sind []
Für den asynchronen Upload von Dateien sollte FormData verwendet werden. Zum Beispiel:
var oMyForm = new FormData(); oMyForm.append("file", file); x.send(oMyForm);