ie9ajax文件上傳
㈠ 前端上傳文件的幾種方法
1.表單上傳
最傳統的圖片上傳方式是form表單上傳,使用form表單的input[type=」file」]控制項,打開系統的文件選擇對話框,從而達到選擇文件並上傳的目的。
form表單上傳
表單上傳需要注意以下幾點:
(1).提供form表單,method必須是post。
(2).form表單的enctype必須是multipart/form-data。
javascript學習交流群:453833554
enctype 屬性規定在發送到伺服器之前應該如何對表單數據進行編碼。默認地,表單數據會編碼為 "application/x-www-form-urlencoded"。就是說,在發送到伺服器之前,所有字元都會進行編碼。HTML表單如何打包數據文件是由enctype這個屬性決定的。enctype有以下幾種取值:
application/x-www-form-urlencoded:在發送前編碼所有字元(默認)(空格被編碼為』+』,特殊字元被編碼為ASCII十六進制字元)。
multipart/form-data:不對字元編碼。在使用包含文件上傳控制項的表單時,必須使用該值。
text/plain:空格轉換為 「+」 加號,但不對特殊字元編碼。
默認enctype=application/x-www-form-urlencoded,所以表單的內容會按URL規則編碼,然後根據表單的提交方法:
method=』get』 編碼後的表單內容附加在請求連接後,
method=』post』 編碼後的表單內容作為post請求的正文內容。
㈡ 如何用ajax上傳文件
用到兩個對象
第一個對象:FormData
第二個對象:XMLHttpRequest
目前新版的Firefox 與 Chrome 等支持HTML5的瀏覽器完美的支持這兩個對象,但IE9尚未支持 FormData 對象,還在用IE6 ? 只能仰天長嘆....
有了這兩個對象,我們可以真正的實現Ajax方式上傳文件。
示例代碼:
<!DOCTYPE html>
<html>
<head>
<title>Html5 Ajax 上傳文件</title>
<script type="text/javascript">
function UpladFile() {
var fileObj = document.getElementByIdx_x_x("file").files[0]; // 獲取文件對象
var FileController = "../file/save"; // 接收上傳文件的後台地址
// FormData 對象
var form = new FormData();
form.append("author", "hooyes"); // 可以增加表單數據
form.append("file", fileObj); // 文件對象
// XMLHttpRequest 對象
var xhr = new XMLHttpRequest();
xhr.open("post", FileController, true);
xhr.onload = function () {
alert("上傳完成!");
};
xhr.send(form);
}
</script>
</head>
<body>
<input type="file" id="file" name="myfile" />
<input type="button" onclick="UpladFile()" value="上傳" />
</body>
</html>
很簡潔的代碼,便可以達到Ajax方式上傳文件,上面的代碼中使用<input type="file" />這種傳統的選擇文件的方法產生文件對象,HTML5還支持使用多種更靈活的方式,如拖拽文件到指定的元素上產生。
㈢ 用ajax提交form表單 IE8和IE9有什麼不同
首先,ajax是不能提交表單的。表單是一定要刷新才能提交(無刷新可以用iframe,本質上還是刷新了)。ajax提交技術是用JS提取值之後提交,表單本身不提交。
第二,對於IE9的兼容性一般不會做過多考慮。能夠從IE6 IE7 IE8 FF這幾個瀏覽器都兼容的話那麼IE9應該不會有問題。
㈣ IE8/9無法上傳本地文件。
兼容性問題,試試看關閉一些試圖監控IE的軟體再看看,同時關閉保護模式:點擊IE9右上角工具-- Internet選項--安全-- 去掉啟用保護模式前面的鉤