當前位置:編程學習大全網 - 源碼下載 - 如何用Ajax實現多文件上傳

如何用Ajax實現多文件上傳

jquery 實現多個上傳文件教程:

首先創建解決方案,添加jquery的js和壹些資源文件(如圖片和進度條顯示等):

1

2

3

4

5

jquery-1.3.2.min.js

jquery.uploadify.v2.1.0.js

jquery.uploadify.v2.1.0.min.js

swfobject.js

uploadify.css

1、頁面的基本代碼如下

這裏用的是aspx頁面(html也是也可的)

頁面中引入的js和js函數如下:

1

2

3

4

5

6

7

<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>

<script src="js/jquery.uploadify.v2.1.0.js" type="text/javascript"></script>

<script src="js/jquery.uploadify.v2.1.0.min.js" type="text/javascript"></script>

<script src="js/swfobject.js" type="text/javascript"></script>

<link href="css/uploadify.css" rel="stylesheet" type="text/css" />

</script>

js函數:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<script type="text/javascript">

$(document).ready(function () {

$("#uploadify").uploadify({

'uploader': 'image/uploadify.swf', //uploadify.swf文件的相對路徑,該swf文件是壹個帶有文字BROWSE的按鈕,點擊後淡出打開文件對話框

'script': 'Handler1.ashx',// script : 後臺處理程序的相對路徑

'cancelImg': 'image/cancel.png',

'buttenText': '請選擇文件',//瀏覽按鈕的文本,默認值:BROWSE。

'sizeLimit':999999999,//文件大小顯示

'floder': 'Uploader',//上傳文件存放的目錄

'queueID': 'fileQueue',//文件隊列的ID,該ID與存放文件隊列的div的ID壹致

'queueSizeLimit': 120,//上傳文件個數限制

'progressData': 'speed',//上傳速度顯示

'auto': false,//是否自動上傳

'multi': true,//是否多文件上傳

//'onSelect': function (e, queueId, fileObj) {

// alert("唯壹標識:" + queueId + "\r\n" +

// "文件名:" + fileObj.name + "\r\n" +

// "文件大小:" + fileObj.size + "\r\n" +

// "創建時間:" + fileObj.creationDate + "\r\n" +

// "最後修改時間:" + fileObj.modificationDate + "\r\n" +

// "文件類型:" + fileObj.type);

// }

'onQueueComplete': function (queueData) {

alert("文件上傳成功!");

return;

}

});

});

頁面中的控件代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

<body>

<form id="form1" runat="server">

<div id="fileQueue">

</div>

<div>

<p>

<input type="file" name="uploadify" id="uploadify"/>

<input id="Button1" type="button" value="上傳" onclick="javascript: $('#uploadify').uploadifyUpload()" />

<input id="Button2" type="button" value="取消" onclick="javascript:$('#uploadify').uploadifyClearQueue()" />

</p>

</div>

</form>

</body>

函數主要參數:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

$(document).ready(function() {

$('#fileInput1').fileUpload({

'uploader': 'uploader.swf',//不多講了

'script': '/AjaxByJQuery/file.do',//處理Action

'cancelImg': 'cancel.png',

'folder': '',//服務端默認保存路徑

'scriptData':{'methed':'uploadFile','arg1','value1'},

//向後臺傳遞參數,methed,arg1為參數名,uploadFile,value1為對應的參數值,服務端通過request["arg1"]

'buttonText':'UpLoadFile',//按鈕顯示文字,不支持中文,解決方案見下

//'buttonImg':'圖片路徑',//通過設置背景圖片解決中文問題,就是把背景圖做成按鈕的樣子

'multi':'true',//多文件上傳開關

'fileExt':'*.xls;*.csv',//文件過濾器

'fileDesc':'.xls',//文件過濾器 詳解見文檔

'onComplete' : function(event,queueID,file,serverData,data){

//serverData為服務器端返回的字符串值

alert(serverData);

}

});

});

後臺壹般處理文件:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

using System;

using System.Collections.Generic;

using System.Linq;

using System.IO;

using System.Net;

using System.Web;

using System.Web.Services;

namespace fupload

{

/// <summary>

/// Handler1 的摘要說明

/// </summary>

public class Handler1 : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

HttpPostedFile file = context.Request.Files["Filedata"];//對客戶端文件的訪問

string uploadPath = HttpContext.Current.Server.MapPath(@context.Request["folder"])+"\\";//服務器端文件保存路徑

if (file != null)

{

if (!Directory.Exists(uploadPath))

{

Directory.CreateDirectory(uploadPath);//創建服務端文件夾

}

file.SaveAs(uploadPath + file.FileName);//保存文件

context.Response.Write("上傳成功");

}

else

{

context.Response.Write("0");

}

}

public bool IsReusable

{

get

{

return false;

}

}

}

}

以上方式基本可以實現多文件的上傳,大文件大小是在控制在10M以下/。

  • 上一篇:股票指標RSI和CCI指標參數怎麽設
  • 下一篇:洛克王國這身上所有服飾代碼
  • copyright 2024編程學習大全網