原生ajax和iframe架構實現圖片檔案上傳的兩種方式_AJAX相關

來源:互聯網
上載者:User

大家應該可以舉出幾種常用的非同步檔案上傳功能的實現方式,使用頻率較多的有原生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>

php代碼:

<?phpif(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);}?>

以上就是本文的全部內容,希望對大家學習理解ajax和iframe架構實現圖片檔案上傳有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.