A. js ajaxfileupload.js IE8 上傳文件 拒絕訪問
安全限制,必須要主動點擊input控制項才行,觸發點擊是不行的,隱藏的話不要用display:none;請使用專opacity:0來隱屬藏(可以滑鼠點擊,visibility:hidden似乎也不行),IE8的話是filter:Alpha(opacity=0);然後讓input一直追隨滑鼠移動,實現方式有很多,你找個合適的吧。總之上傳需要主動點擊input
-------------------------------
如果以上方法你不接受,那麼你只能用flash來實現上傳了
B. 用ajaxfileupload.js上傳文件或圖片時 ie8或ie8以下版本直接返回false,根本不請求url上傳路徑
ie8以後版本採用標準的js支持,有些方法也己被廢棄或新的方法,查查原碼
C. 求解Spring mvc 文件上傳採用jquery插件 AjaxFileUpload.js 出現的一些問題
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>checkbox</title>
<script src="js/jquery-1.3.2.js" type="text/javascript"></script>
<script src="js/1.js" type="text/javascript"></script>
</head>
<body>
<table id="table1">
<tr>
<td><input type="checkbox" value="1"/>1</td>
<td id="k_1"><input type="text" name="student" id="s_1" readonly="true"/></td>
</tr>
<tr>
<td><input type="checkbox" value="2"/>2</td>
<td id="k_2"><input type="text" name="student" id="s_2" readonly="true"/></td>
</tr>
<tr>
<td><input type="checkbox" value="3"/>3</td>
<td id="k_3"><input type="text" name="student" id="s_3" readonly="true"/></td>
</tr>
<tr>
<td><input type="checkbox" value="4"/>4</td>
<td id="k_4"><input type="text" name="student" id="s_4" readonly="true"/></td>
</tr>
</table>
</body>
</html>
-------------------------------------------------------------
$(document).ready(function() {
$("td[id^='k_']").hide();
var check = $(":checkbox"); //得到所有被選中的checkbox
var actor_config; //定義變數
check.each(function(i){
actor_config = $(this);
actor_config.click(
function(){
if($(this).attr("checked")==true){
$("#k_"+$(this).val()).show();
}else{
$("#k_"+$(this).val()).hide();
}
}
);
});
});
D. jQuery插件之ajaxFileUpload
ajaxFileUpload是一個非同步上傳文件的jQuery插件,語法:$.ajaxFileUpload([options])。
使用方法:
第一步:先引入jQuery與ajaxFileUpload插件。注意先後順序。
<script src="jquery-1.7.1.js" type="text/javascript"></script>
<script src="ajaxfileupload.js" type="text/javascript"></script>
第二步:HTML代碼
第三步:JS代碼第四步:後台頁面upload.aspx代碼。
E. jquery ajaxFileUpload is not a function是什麼原因
報錯信息
Uncaught TypeError:$.ajaxFileUpload is not a function
大意就是,ajaxFileUpload這個函數未定義
錯誤背景
我使用了ajaxFileUpload這個js來實現不藉助form表單的不刷新頁面提交文件的功能(但是其實這個js內部還是用的是form表單提交的233,偽ajax,和jQuery ajax是不一樣的)。
在找了一個ajaxfileupload.js下載引用並且寫好上傳代碼之後,一直報這個錯誤,我打開控制台看了一下,ajaxfileupload.js是引用成功的,可以在控制台打開,在其中可以看到ajaxFileUpload這個函數是定義了的,但是不管重啟伺服器多少次,都會報這個錯誤。然後開始各種查資料,開始看大家所說,以為是ajaxfileupload.js這個文件本身的問題,然後我去github下載了fork最多的那個,替換之前下的那個,還是不對,又在不同的幾個地方找了幾個不同版本的ajaxfileupload.js都試了試,仍舊是這個錯誤。然後看網上資料說與jquery.min.js也有關,因為我使用了Bootstap,所以jquery.min.js是之前導入的有的,懷疑是這個js版本導致的錯誤,我又試了幾個不同版本的jquery.min.js,然而並無卵用。
最後,終於在一個不起眼的小旮旯里找到了一個說法:js引用版本沖突可能會導致這種錯誤,後來又在CSDN問答里看到了一個人也是遇到這種錯誤,說與include有關,最後仔細看include才找到了真正導致這個錯誤的原因。
解決方法
首先,我們需要明確幾個前提(別人的博客里基本都講過這些啦,但感覺還是有必要說一下):
確認你使用的ajaxfileupload.js不是不知道從哪裡搞來的可用性待商榷的。
因為這個js較簡單很多人是自己寫的,所以可能有很多不是普遍使用的版本。我在這里給出我使用的js。點我下載
確定你導入了jquery.min.js和ajaxfileupload.js這兩個js,並且路徑沒有問題,並且jquery.js在ajaxfileupload.js之前導入。
如果因為路徑錯誤或者配置錯誤什麼的導致js沒有成功導入上述兩個js那就是別的地方有錯誤。判斷自己是否成功導入js很簡單,用開發人員工具看一下對應的js是否能打開,或者刷新一下頁面在network裡面看一下js文件的http請求狀態,200或者304表示導入成功(這兩個狀態的不同可以自己網路,但是都表示成功)。
以上兩點確認之後,那麼重點就來了,你要看一下你的頁面中有幾個導入的jquery.min.js和ajaxfileupload.js,如果確保本頁面這兩個js都導入了一次,那麼,你應該是使用了include標簽,如果你在include標簽裡面導入了jquery.min.js或者ajaxFileUpload.js的話,瀏覽器就會因為在同一個頁面中導入了兩個同名的js而不知道該用哪一個(盡管導入的是同一個js文件!),所以乾脆就不用了。。。然後就會報上述錯誤了,確保你所有的include以及iframe子頁面裡面沒有導入其它jquery.min.js,那麼這時就應該已經解決這個錯誤了。