好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > JQuery+ajax實現批量上傳圖片(自寫)

JQuery+ajax實現批量上傳圖片(自寫)

熱門標簽:接聽電話機器人哪有 電銷機器人適用范圍 蓄意標記地圖標注 信貸電銷機器人有用嗎 如何用地圖標注各分公司 辦理一個400電話多少錢 察縣地圖標注 莆田防封電銷卡價格 廣西ai語音電銷機器人哪家好

在網上搜索了一下,發現以jquery+ajax方式實現單張圖片上傳的代碼是有的,但實現批量上傳圖片的程序卻沒搜索到,于是根據搜索到的代碼,寫了一個可以批量上傳的。
先看效果圖

點擊增加按鈕,會增加一個選擇框,如下圖:


選擇要上傳的圖片,效果圖如下:


上傳成功如下圖:

下面來看代碼:
前臺html主要代碼:

復制代碼 代碼如下:

button id="SubUpload" class="ManagerButton" onClick="TSubmitUploadImageFile();return false;">確定上傳/button>nbsp;nbsp;
button id="CancelUpload" class="ManagerButton" onClick="javascript:history.go(-1);">取消/button>nbsp;nbsp;
button id="AddUpload" class="ManagerButton" onClick="TAddFileUpload();return false;">增加/button>
tr>td class="tdClass">
圖片1:
/td>td class="tdClass">
input name="" size="60" id="uploadImg1" type="file" />
span id="uploadImgState1">/span>
/td>/tr>

因為用了JQuery,所以你完全可以把click事件放在js文件中
“增加”按鈕js代碼:
復制代碼 代碼如下:

var TfileUploadNum=1; //記錄圖片選擇框個數
var Tnum=1; //ajax上傳圖片時索引
function TAddFileUpload()
{
var idnum = TfileUploadNum+1;
var str="tr>td class='tdClass'>圖片"+idnum+":/td>";
str += "td class='tdClass'>input name='' size='60' id='uploadImg"+idnum+"' type='file' />span id='uploadImgState"+idnum+"'>";
str += "/span>/td>/tr>";
("#imgTable").append(str);
TfileUploadNum += 1;
}


“確定上傳”按鈕js代碼:
復制代碼 代碼如下:

function TSubmitUploadImageFile()
{
M("SubUpload").disabled=true;
M("CancelUpload").disabled=true;
M("AddUpload").disabled=true;
setTimeout("TajaxFileUpload()",1000);//此為關鍵代碼
}

關于setTimeout("TajaxFileUpload()",1000);這句代碼:因為所謂的批量上傳,其實還是一個一個的上傳,給用戶的只是一個假象。只所以要延時執行TajaxFileUpload(),是因為在把圖片上傳到服務器上時,我在后臺給圖片重新命名了,命名的規則是,如下代碼:
復制代碼 代碼如下:

Random rd = new Random();
StringBuilder serial = new StringBuilder();
serial.Append(DateTime.Now.ToString("yyyyMMddHHmmssff"));
serial.Append(rd.Next(0, 999999).ToString());
return serial.ToString();

即使我命名精確到毫秒,另外再加上隨機數,可是還是有上傳的第二張圖片把上傳的第一張圖片覆蓋的情況出現。所以此處我設置了延時1秒后在上傳下一張圖片。剛開始做這個東西的時候,用的是for循環,來把所有的圖片一個一個的循環地用ajax上傳,可是for循環速度太快了,可能第一張圖片還沒來得及ajax,第二張就被for過來了,還是有第二張覆蓋第一張的情況出現。
下面來看TajaxFileUpload()函數,代碼如下:
復制代碼 代碼如下:

function TajaxFileUpload()
{
if(TnumTfileUploadNum+1)
{
//準備提交處理
("#uploadImgState"+Tnum).html("img src=../images/loading.gif />");
//開始提交
.ajax
({
type: "POST",
url:"http://localhost/ajaxText2/Handler1.ashx",
data:{upfile:("#uploadImg"+Tnum).val(),category:("#pcategory").val()},
success:function (data, status)
{
//alert(data);
var stringArray = data.split("|");

if(stringArray[0]=="1")
{
//stringArray[0] 成功狀態(1為成功,0為失敗)
//stringArray[1] 上傳成功的文件名
//stringArray[2] 消息提示
("#uploadImgState"+Tnum).html("img src=../images/note_ok.gif />");//+stringArray[1]+"|"+stringArray[2]);
}
else
{
//上傳出錯
("#uploadImgState"+Tnum).html("img src=../images/note_error.gif />"+stringArray[2]);//+stringArray[2]+"");
}
Tnum++;
setTimeout("TSubmitUploadImageFile()",0);
}
});
}
}

上面的代碼沒什么可說的,很容易看懂。下面來看Handler1.ashx(一般處理程序)如何來處理post過來的圖片的(此代碼來自網上,具體地址忘記了),下面只給出關鍵代碼,全部代碼在附件里。
1、
復制代碼 代碼如下:

string _fileNamePath = "";
try
{
_fileNamePath = context.Request.Form["upfile"];
//開始上傳
string _savedFileResult = UpLoadFile(_fileNamePath);
context.Response.Write(_savedFileResult);
}
catch
{
context.Response.Write("0|error|上傳提交出錯");
}

2、
復制代碼 代碼如下:

//生成將要保存的隨機文件名
string fileName = GetFileName() + fileNameExt;
//物理完整路徑
string toFileFullPath = HttpContext.Current.Server.MapPath(toFilePath);
//檢查是否有該路徑 沒有就創建
if (!Directory.Exists(toFileFullPath))
{
Directory.CreateDirectory(toFileFullPath);
}
///創建WebClient實例
WebClient myWebClient = new WebClient();
//設定windows網絡安全認證 方法1
myWebClient.Credentials = CredentialCache.DefaultCredentials;
//要上傳的文件
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
//FileStream fs = OpenFile();
BinaryReader r = new BinaryReader(fs);
//使用UploadFile方法可以用下面的格式
//myWebClient.UploadFile(toFile, "PUT",fileNamePath);
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(toFile, "PUT");
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
}


3、檢查是否合法的上傳文件
復制代碼 代碼如下:

private bool CheckFileExt(string _fileExt)
{
string[] allowExt = new string[] { ".gif", ".jpg", ".jpeg" };
for (int i = 0; i allowExt.Length; i++)
{
if (allowExt[i] == _fileExt) { return true; }
}
return false;
}


4、生成要保存的隨即文件名
復制代碼 代碼如下:

public static string GetFileName()
{
Random rd = new Random();
StringBuilder serial = new StringBuilder();
serial.Append(DateTime.Now.ToString("yyyyMMddHHmmssff"));
serial.Append(rd.Next(0, 999999).ToString());
return serial.ToString();
}

Ok,基本上這個批量上傳圖片的JQuery+ajax方式實現的程序完成了。如果你要上傳word文檔,pdf文件,只要稍作修改,就可以實現了。

您可能感興趣的文章:
  • Jquery ajaxsubmit上傳圖片實現代碼
  • 基于jquery實現的上傳圖片及圖片大小驗證、圖片預覽效果代碼
  • jquery的ajaxSubmit()異步上傳圖片并保存表單數據演示代碼
  • jquery 批量上傳圖片實現代碼
  • 使用jQuery實現驗證上傳圖片的格式與大小
  • 簡單實現jQuery上傳圖片顯示預覽功能
  • jQuery AjaxUpload 上傳圖片代碼
  • jQuery實現上傳圖片前預覽效果功能
  • 基于Jquery插件Uploadify實現實時顯示進度條上傳圖片
  • jquery實現上傳圖片功能

標簽:銅陵 延邊 儋州 鷹潭 平涼 阿拉善盟 益陽 張掖

巨人網絡通訊聲明:本文標題《JQuery+ajax實現批量上傳圖片(自寫)》,本文關鍵詞  JQuery+ajax,實現,批量,上傳,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JQuery+ajax實現批量上傳圖片(自寫)》相關的同類信息!
  • 本頁收集關于JQuery+ajax實現批量上傳圖片(自寫)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 儿媳妇| 冲田杏梨av爆乳一区二区三区| 国产亚洲精品久久久久久久软件| 欧洲码欧洲尺码M高清| 日本Av亚洲AⅤ久久精品软件| 性转雌堕小婬奴裙子高H文| 被合租糙汉室友C到哭免费| 男生下面插入女生下面视频| chinese老太交70old| 性一交一乱一交一A片m3u8| 26uuu国产AⅤ在线观看| free欧美性69| 亚洲高清美女汐汐精品私房照写真| 艳母动漫1-6| 日本一级av无码毛片铃木凉 | 军训时与教官啪H文| 少婦高潮久久久久久| 9久久精品国产9性色Tv| 台湾黄色片| 蜜乳AV一区二区三区视频网址| 91桃色软件使用教程| 嗯嗯啊哈| 717电影网good理论片暴走| 私密直播app| 武侠美妇被强疯狂迎合娇吟| 一级大黄色片| 秋霞99AV鲁丝片无码 | 瑜伽裤无内裤福利视频| 日本熟hd| 国V精品秘?久久久网| 看一级特黄a大一片| 亚洲国产午夜精品乱码| 操肥婆| 欧美三级韩国三级日本三斤| 极品少妇XXⅩOOO性开| 亚洲w码欧洲s码免费| 91露脸熟女四川熟女在线观看| 久久久无码精品亚洲A片消消乐| **aa毛片| 国产精品亚洲综合一区二区三区 | 国产精品稀缺盗摄盗拍 |