ajax 是無法實現上傳文件的,可以想一下ajax與後台通信都是通過傳遞字符串,怎麼能傳遞文件呢?其實出於安全考慮js是不能操作文件的,所以就不要再說用ajax來實現文件的上傳了,這是不可能的。
而本文實現的文件上傳也是無頁面刷新的,可以說是一種"類似AJAX"方法。
開始之前先說兩句無關的,其實在ajax出現之前,web應用也可以是無刷新的,那時大多通過IFrame來做到這一點。當然Ajax出現之後,人們一窩蜂地投奔Ajax 的陣營了,iFrame 就乏人問津了。但是用iFrame來實現無刷新上傳文件確實一個很好的選擇。ps:Ajax技術基本上可以說是由google公司帶起來的,但少Gmail中上傳文件用的還是 IFrame,所以說使用IFrame來上傳文件是最好的選擇
我在這裡這裡用的技術是jsp,其實asp,php等也是一樣可以這麼實現的。一共兩個文件就可實現:index.html 和 upload.jsp,在這裡講解一下,文後會附上源碼
--index.html
html 代碼
<html>
<body>
<form action="upload.jsp" id="form1" name="form1" encType="multipart/form
data" method="post" target="hidden_frame" >
<input type="file" id="file" name="file" style="width:450">
<inputtype="submit" value="上傳文件">
</form>
<iframe name="hidden_frame"id="hidden_frame" style="display:none"></iframe><span id="msg"></span>
</body>
</html>
<script type="text/javascript">
function callback(msg)
{
document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;
document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>";
本文來自: 114JAVA技術網(http://www.114java.com/) 詳細出處參考:http://www.114java.com/JavaScript_ajax_jquery_flex/2010/0310/1031.html