當前位置:首頁 » 文件管理 » ie8文件上傳ajax

ie8文件上傳ajax

發布時間: 2023-01-20 06:26:20

1. js ajaxfileupload.js IE8 上傳文件 拒絕訪問

安全限制,必須要主動點擊input控制項才行,觸發點擊是不行的,隱藏的話不要用display:none;請使用opacity:0來隱藏(可以滑鼠點擊,visibility:hidden似乎也不行),IE8的話是filter:Alpha(opacity=0);然後讓input一直追隨滑鼠移動,實現方式有很多,你找個合適的吧。總之上傳需要主動點擊input
-------------------------------
如果以上方法你不接受,那麼你只能用flash來實現上傳了

2. 在ie8如何非同步上傳文件,springmvc後台使用MultipartFile接收。

直接上代碼給你參考

@RequestMapping("upload")
public String upload(HttpServletRequest request, PrintWriter out) throws JSONException {
String realPath = "D:/upload"
+ DateUtil.getCurrenDate();// 上傳圖片路徑dir
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
MultipartFile multipartFile = null;
String fileName = null;
for (Map.Entry<String, MultipartFile> set : fileMap.entrySet()) {
// String filekey = set.getKey();// Filedata
multipartFile = set.getValue();// 文件名
}
fileName = this.storeIOc(multipartRequest, multipartFile,realPath);

String fileName = "";
String logImageName = "";
if (file.isEmpty()) {
System.out.println("文件未上傳");
} else {
FileHelper.mkdirs(realPath);//如果文件路徑不存在,則創建
String _fileName = file.getOriginalFilename();
String suffix = _fileName.substring(_fileName.lastIndexOf("."));
// /**使用UUID生成文件名稱**/
logImageName = UUID.randomUUID().toString() + suffix;
fileName = realPath + File.separator + logImageName;
File restore = new File(fileName);
try {
file.transferTo(restore);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// 返回默認的圖片地址
return fileName;
}

3. AJAX與IE8的兼容性問題

看了你的代碼,我覺得不是AJAX的問題,有可能是你系統里換歌的代碼出現問題,IE對AJAX的支持應該沒有問題,畢竟你也說了,還是能換一首的,證明AJAX能正常工作。建議你檢查以下你php的代碼。

4. IE8 下的JQuery中ajax 的問題

你找個調試的jquery源文件,然後再ie8裡面按F12可以調出控制台,在javascript打斷點看看調試一下

5. 如何解決IE8下Ajax調用時跨域的問題

在JS代碼頁面最前方添加如下內容:
jQuery.support.cors = true;
在ajax中URL最後添加上時間戳tmp如下:
url:url+"&email="+email+"&domain="+domain+"&mailbox="+mailbox+"&password="+password+"&tmp=<%=new
Date().getTime()%>",
訪問Internet選項,具體如下:

切換到Internet的安全選項卡,並選擇Internet,點擊自定義級別,具體如下:

啟用跨域瀏覽器窗口和框架,具體如下

啟用「通過域訪問數據源」,具體如下

如果您將要訪問的地址加入了可信任站點,那麼同時要針對可信任站點進行設置,按照如下截圖找到可信任站點後,重復5,6步操作

切記Ajax調用中返回的dataType值一定要按相應的系統返回格式要求填寫。如下圖中的dataType為text,如果修改為xml的話,IE8下很有可能出現不了數據。

6. 如何解決IE8下Ajax調用時跨域的問題

你沒說跨域要幹嘛,我沒法給你准確的答案;

但IE9以下跨域的辦法只有那幾種:

如果是簡單的跨域,只需要傳值過去,並不需要伺服器響應,使用下面的代碼

varimg=newImage();
img.src='要跨域的網址';

如果需要伺服器端響應,使用JSONP

原理大概是這樣的,先在當前JS裡面創建一個回調函數,然後再以載入外部scipt的方法訪問要跨域的網址,然後網址調用回調函數並傳參。

varscript=document.createElement('script');
script.src='//localhost//web01/index.php?s=home/index/xhr';
document.body.appendChild(script);
functioncallback(json){
console.log(json);
}

伺服器返回的信息裡面一定要用 callback()包裹。

7. ajax在ie8下不起效,詳細請看如下描述

url 有問題 如果執行了 error 把 錯誤參數列印出來

還有可以按f12 看看jquery 那裡出錯了

8. 用ajax提交form表單 IE8和IE9有什麼不同

首先,ajax是不能提交表單的。表單是一定要刷新才能提交(無刷新可以用iframe,本質上還是刷新了)。ajax提交技術是用JS提取值之後提交,表單本身不提交。
第二,對於IE9的兼容性一般不會做過多考慮。能夠從IE6 IE7 IE8 FF這幾個瀏覽器都兼容的話那麼IE9應該不會有問題。

9. 用ajaxfileupload.js上傳文件或圖片時 ie8或ie8以下版本直接返回false,根本不請求url上傳路徑

ie8以後版本採用標準的js支持,有些方法也己被廢棄或新的方法,查查原碼

10. ajax如何 實現 文件上傳



程序說明

使用說明

實例化時,第一個必要參數是file控制項對象:

newQuickUpload(file);


第二個可選參數用來設置系統的默認屬性,包括
屬性: 默認值//說明
parameter:{},//參數對象
action:"",//設置action
timeout:0,//設置超時(秒為單位)
onReady:function(){},//上傳准備時執行
onFinish:function(){},//上傳完成時執行
onStop:function(){},//上傳停止時執行
onTimeout:function(){}//上傳超時時執行

還提供了以下方法:
upload:執行上傳操作;
stop:停止上傳操作;
dispose:銷毀程序。

varQuickUpload=function(file,options){

this.file=$$(file);

this._sending=false;//是否正在上傳
this._timer=null;//定時器
this._iframe=null;//iframe對象
this._form=null;//form對象
this._inputs={};//input對象
this._fFINISH=null;//完成執行函數

$$.extend(this,this._setOptions(options));
};
QuickUpload._counter=1;
QuickUpload.prototype={
//設置默認屬性
_setOptions:function(options){
this.options={//默認值
action:"",//設置action
timeout:0,//設置超時(秒為單位)
parameter:{},//參數對象
onReady:function(){},//上傳准備時執行
onFinish:function(){},//上傳完成時執行
onStop:function(){},//上傳停止時執行
onTimeout:function(){}//上傳超時時執行
};
return$$.extend(this.options,options||{});
},
//上傳文件
upload:function(){
//停止上一次上傳
this.stop();
//沒有文件返回
if(!this.file||!this.file.value)return;
//可能在onReady中修改相關屬性所以放前面
this.onReady();
//設置iframe,form和表單控制項
this._setIframe();
this._setForm();
this._setInput();
//設置超時
if(this.timeout>0){
this._timer=setTimeout($$F.bind(this._timeout,this),this.timeout*1000);
}
//開始上傳
this._form.submit();
this._sending=true;
},
//設置iframe
_setIframe:function(){
if(!this._iframe){
//創建iframe
variframename="QUICKUPLOAD_"+QuickUpload._counter++,
iframe=document.createElement($$B.ie?"<iframename=""+iframename+"">":"iframe");
iframe.name=iframename;
iframe.style.display="none";
//記錄完成程序方便移除
varfinish=this._fFINISH=$$F.bind(this._finish,this);
//iframe載入完後執行完成程序
if($$B.ie){
iframe.attachEvent("onload",finish);
}else{
iframe.onload=$$B.opera?function(){this.onload=finish;}:finish;
}
//插入body
varbody=document.body;body.insertBefore(iframe,body.childNodes[0]);

this._iframe=iframe;
}
},
//設置form
_setForm:function(){
if(!this._form){
varform=document.createElement('form'),file=this.file;
//設置屬性
$$.extend(form,{
target:this._iframe.name,method:"post",encoding:"multipart/form-data"
});
//設置樣式
$$D.setStyle(form,{
padding:0,margin:0,border:0,
backgroundColor:"transparent",display:"inline"
});
//提交前去掉form
file.form&&$$E.addEvent(file.form,"submit",$$F.bind(this.dispose,this));
//插入form
file.parentNode.insertBefore(form,file).appendChild(file);

this._form=form;
}
//action可能會修改
this._form.action=this.action;
},
//設置input
_setInput:function(){
varform=this._form,oldInputs=this._inputs,newInputs={},name;
//設置input
for(nameinthis.parameter){
varinput=form[name];
if(!input){
//如果沒有對應input新建一個
input=document.createElement("input");
input.name=name;input.type="hidden";
form.appendChild(input);
}
input.value=this.parameter[name];
//記錄當前input
newInputs[name]=input;
//刪除已有記錄
deleteoldInputs[name];
}
//移除無用input
for(nameinoldInputs){form.removeChild(oldInputs[name]);}
//保存當前input
this._inputs=newInputs;
},
//停止上傳
stop:function(){
if(this._sending){
this._sending=false;
clearTimeout(this._timer);
//重置iframe
if($$B.opera){//opera通過設置src會有問題
this._removeIframe();
}else{
this._iframe.src="";
}
this.onStop();
}
},
//銷毀程序
dispose:function(){
this._sending=false;
clearTimeout(this._timer);
//清除iframe
if($$B.firefox){
setTimeout($$F.bind(this._removeIframe,this),0);
}else{
this._removeIframe();
}
//清除form
this._removeForm();
//清除dom關聯
this._inputs=this._fFINISH=this.file=null;
},
//清除iframe
_removeIframe:function(){
if(this._iframe){
variframe=this._iframe;
$$B.ie?iframe.detachEvent("onload",this._fFINISH):(iframe.onload=null);
document.body.removeChild(iframe);this._iframe=null;
}
},
//清除form
_removeForm:function(){
if(this._form){
varform=this._form,parent=form.parentNode;
if(parent){
parent.insertBefore(this.file,form);parent.removeChild(form);
}
this._form=this._inputs=null;
}
},
//超時函數
_timeout:function(){
if(this._sending){this._sending=false;this.stop();this.onTimeout();}
},
//完成函數
_finish:function(){
if(this._sending){this._sending=false;this.onFinish(this._iframe);}
}
}

熱點內容
新一代唐dm哪個配置最劃算 發布:2024-05-02 22:45:16 瀏覽:229
安卓怎麼安裝到sd卡 發布:2024-05-02 22:41:32 瀏覽:224
web聊天源碼 發布:2024-05-02 22:41:29 瀏覽:286
php定時腳本 發布:2024-05-02 22:18:41 瀏覽:312
雲服務可以替代普通伺服器么 發布:2024-05-02 21:57:11 瀏覽:944
wegame與伺服器斷開連接是怎麼回事 發布:2024-05-02 21:55:05 瀏覽:785
zip加密破解 發布:2024-05-02 21:41:23 瀏覽:480
怎麼模擬電腦配置 發布:2024-05-02 21:28:08 瀏覽:784
對一個新編程 發布:2024-05-02 21:20:07 瀏覽:559
華為系統編譯器在哪裡 發布:2024-05-02 21:19:50 瀏覽:86