ASP.NET多文件上傳控件Uploadify的使用方法
對于Uploadify文件上傳之前已經(jīng)講過一次(文件上傳~Uploadify上傳控件),只不過沒有涉及到多文件的上傳,這回主要說一下多個文件的上傳,首先,我們要清楚一個概念,多文件上傳前端Uploadify是通過輪訓(xùn)的方式去調(diào)用我們的后臺upload程序的,所以,對于多文件上傳來說,也沒什么稀奇的.
下面是文件上傳后的縮略圖如下

列表的組裝使用JS模板,這樣對于復(fù)雜的HTML結(jié)構(gòu)來說,可以減少拼寫錯誤的出現(xiàn),關(guān)閉是將LI元素從UI元素移除,最后提交時(shí),從UI里檢查LI元素,然后對它進(jìn)行組裝,并進(jìn)行發(fā)送下面是相關(guān)代碼
一 HTML模版
<script type="text/html" id="liTemp">
<li>
<!--上傳后狀態(tài)-->
<div class="VedioChange">
<dl>
<dt>
<a href="javascript:;">
<img width="140" height='92' src="{src}" alt="{alt}" /><span class="playIcon"></span></a>
<input type="hidden" name="HdFileURL" value="{FilePath}" /><br />
<input type="hidden" name="HdImagePath" value="{ImagePath}" /><br />
<input type="hidden" name="HdSourceName" value="{SourceName}" /><br />
<input type="hidden" name="HdFileSize" value="{FileSize}" /><br />
</dt>
<dd><a href="javascript:;" class="lookBig">預(yù)覽</a> <a href="javascript:;" class="reselect" onclick="del(this)">關(guān)閉</a></dd>
</dl>
</div>
<!--上傳后狀態(tài)-->
</li>
</script>
二 uploadfiy代碼
<script type="text/javascript">
$(document).ready(function () {
$("#uploadify").uploadify({
'uploader': 'js/jquery.uploadify-v2.1.4/uploadify.swf',
'script': 'UploadHandler.ashx',
'cancelImg': 'js/jquery.uploadify-v2.1.4/cancel.png',
'folder': '/UploadFile/',
'queueID': 'fileQueue',
'auto': true,
'multi': true,
'onComplete': function (event, queueID, fileObj, response, data) {//當(dāng)單個文件上傳完成后觸發(fā)
//event:事件對象(the event object)
//ID:該文件在文件隊(duì)列中的唯一表示
//fileObj:選中文件的對象,他包含的屬性列表
//[name] - 已上傳文件的名稱
//[filePath] - 已上傳文件在服務(wù)器上的路徑
//[size] – 文件的大學(xué),單位為字節(jié)
//[creationDate] – 文件的創(chuàng)建日期
//[modificationDate] – 文件的最后修改日期
//[type] – 文件的擴(kuò)展名,以‘.'開始
//response:服務(wù)器端返回的Response文本,我這里返回的是處理過的文件名稱
//data:文件隊(duì)列詳細(xì)信息和文件上傳的一般數(shù)據(jù)
$("#preview").append(dataTemplate($("#liTemp").text(), { src: response, alt: fileObj.name }));
},
'onError': function (event, queueID, fileObj) {//當(dāng)單個文件上傳出錯時(shí)觸發(fā)
alert("文件:" + fileObj.name + " 上傳失??!");
},
});
});
function del(o) {
$(o).closest("li").remove();
}
</script>
三 html代碼
<div class="rt"> <ul class="clearfix w_VedioChange" id="preview"> </ul> </div> <div id="fileQueue"></div>
四 ashx代碼
/// <summary>
/// Summary description for UploadHandler
/// </summary>
public class UploadHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Charset = "utf-8";
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(Path.Combine(uploadPath, file.FileName));
var pathArr = uploadPath.Split('\\');
context.Response.Write(HttpContext.Current.Request.Url.Scheme
+ "://"
+ HttpContext.Current.Request.Url.Authority
+ "/"
+ pathArr[pathArr.Length - 2]
+ "/"
+ pathArr[pathArr.Length - 1]
+ "/"
+ file.FileName);
}
else
{
context.Response.Write("0");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
為大家推薦一個專題,供大家學(xué)習(xí):《ASP.NET文件上傳匯總》
本實(shí)例只是簡單的說明了文件上傳的功能,如果在真實(shí)項(xiàng)目中使用的話,還需要進(jìn)一步的進(jìn)行代碼的設(shè)計(jì).
相關(guān)文章
如何利用HttpClientFactory實(shí)現(xiàn)簡單的熔斷降級
這篇文章主要給大家介紹了關(guān)于如何利用HttpClientFactory實(shí)現(xiàn)簡單的熔斷降級的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
ASP.NET中TextBox使用Ajax控件顯示日期不全的問題解決方法
這篇文章介紹了ASP.NET中TextBox使用Ajax控件顯示日期不全的問題解決方法,有需要的朋友可以參考一下2013-10-10
深入學(xué)習(xí).net驗(yàn)證碼生成及使用方法
這篇文章主要介紹了.net驗(yàn)證碼生成及使用方法,先了解驗(yàn)證碼是什么以及其作用,最后分享了如何制作驗(yàn)證碼,內(nèi)容很全面,感興趣的小伙伴們可以參考一下2015-11-11
aspxgridview CustomButtonCallback 不支持彈出消息提示解決方法
aspxgridveiw是devexpress的一個grid控件,使用起來還不錯,不能再 CustomButtonCallback 事件中使用response.write,具體的解決方法如下,感興趣的朋友可以參考下哈2013-06-06
asp.net 關(guān)于字符串內(nèi)范圍截取的一點(diǎn)方法總結(jié)
前兩天有一位網(wǎng)友提出了一個字符串內(nèi)截取字符串的問題,除了用普通的字符串截取的方式外,我推薦的是用LINQ方式來截取。兩者實(shí)際上差別不是很大,都是采用字符串截取方式,但后者從寫法和觀察效果會比前者簡單實(shí)用得多。2010-02-02
Asp .net 調(diào)用帶參數(shù)的存儲過程
本文主要介紹了Asp .net 調(diào)用帶參數(shù)的存儲過程的相關(guān)知識。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-03-03
如何在ASP.NET Core應(yīng)用程序運(yùn)行Vue并且部署在IIS上詳解
這篇文章主要給大家介紹了關(guān)于如何運(yùn)行Vue在ASP.NET Core應(yīng)用程序并且部署在IIS上的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10

