大家應該可以舉出幾種常用的異步文件上傳功能的實現方式,使用頻率較多的有原生ajax和iframe框架,實現圖片文件上傳,下面就為大家分享圖片文件上傳的兩種方式:原生ajax和iframe框架,供大家參考,具體內容如下
方法一:利用iframe框架上傳圖片
html代碼如下:
<div 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></div><div id="msg"></div>
index.js文件:
$(function(){$("#upload_file").change(function(){$("#uploadFrom").submit();});});function stopSend(str){var im="<img src='upload/images/"+str+"'>";$("#msg").append(im);}
upload.php文件:
<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>";?>
方法二:原生態ajax文件上傳
<!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><div 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></div></body></html>
新聞熱點
疑難解答
圖片精選