Home >Web Front-end >JS Tutorial >Ajax and iframe framework implement image file upload (detailed graphic and text explanation)
This time I will bring you the ajax and iframe framework to implement picture File upload (detailed picture and text explanation), the notes of ajax and iframe framework to implement image file upload, what are the following? This is a practical case, let’s take a look at it.
You should be able to cite several commonly used ways to implement the asynchronous file upload function. The more frequently used methods are native ajax and iframe frameworks to achieve image file upload. Below, I will share with you two ways to upload image files. One way: native ajax and iframe framework, for your reference, the specific content is as follows
Method 1: Use the iframe framework to upload images
html code is as follows:
<p class="frm"> <form name="uploadFrom" id="uploadFrom" action="upload.php" method="post" target="tarframe" enctype="multipart/form-data"> <input type="file" id="upload_file" name="upfile"> </form> <iframe src="" width="0" height="0" style="display:none;" name="tarframe"></iframe> </p> <p id="msg"> </p>
index.js file:
$(function(){ $("#upload_file").change(function(){ $("#uploadFrom").submit(); }); }); function stopSend(str){ var im="<img src='upload/images/"+str+"'>"; $("#msg").append(im); }
upload.php file:
<php $file=$_FILES['upfile']; $name=rand(0,500000).dechex(rand(0,10000)).".jpg"; move_uploaded_file($file['tmp_name'],"upload/images/".$name); //调用iframe父窗口的js 函数 echo "<script>parent.stopSend('$name')</script>"; ?>
Method 2: Original ajax file upload
<!DOCTYPE html> <html> <head> <title>Html5 Ajax 上传文件</title> <meta charset="utf-8"> <script type="text/javascript"> var xhr; function createXMLHttpRequest() { if(window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } } function UpladFile() { var fileObj = document.getElementById("file").files[0]; var FileController = 'upload.php'; var form = new FormData(); form.append("myfile", fileObj); createXMLHttpRequest(); xhr.onreadystatechange = handleStateChange; xhr.open("post", FileController, true); xhr.send(form); } function handleStateChange() { if(xhr.readyState == 4) { if (xhr.status == 200 || xhr.status == 0) { var result = xhr.responseText; var json = eval("(" + result + ")"); alert('图片链接:n'+json.file); } } } </script> <style> .txt{ height:28px; border:1px solid #cdcdcd; width:670px;} .mybtn{ background-color:#FFF; line-height:14px;vertical-align:middle;border:1px solid #CDCDCD;height:30px; width:70px;} .file{ position:absolute; top:0; right:80px; height:24px; filter:alpha(opacity:0);opacity: 0;width:260px } </style> </head> <body> <p class="form-group"> <label class="control-label">图片</label> <br/> <input type='text' name='textfield' id='textfield' class='txt' /> <span onclick="file.click()" class="mybtn">浏览...</span> <input type="file" name="file" class="file" id="file" size="28" onchange="document.getElementById('textfield').value=this.value" /> <span onclick="UpladFile()" class="mybtn">上传</span> </p> </body> </html>
php code :
<?php if(isset($_FILES["myfile"])) { $ret = array(); $uploadDir = 'images'.DIRECTORY_SEPARATOR.date("Ymd").DIRECTORY_SEPARATOR; $dir = dirname(FILE).DIRECTORY_SEPARATOR.$uploadDir; file_exists($dir) || (mkdir($dir,0777,true) && chmod($dir,0777)); if(!is_array($_FILES["myfile"]["name"])) //single file { $fileName = time().uniqid().'.'.pathinfo($_FILES["myfile"]["name"])['extension']; move_uploaded_file($_FILES["myfile"]["tmp_name"],$dir.$fileName); $ret['file'] = DIRECTORY_SEPARATOR.$uploadDir.$fileName; } echo json_encode($ret); } ?>
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
Ajax verification user name (detailed graphic and text explanation)
How to improve user experience beforeSend
The above is the detailed content of Ajax and iframe framework implement image file upload (detailed graphic and text explanation). For more information, please follow other related articles on the PHP Chinese website!