jQuery無刷新上傳之uploadify簡單試用
先簡單的侃兩句:貌似已經有兩個月的時間沒有寫過文章了,不過仍會像以前那样每天至少有一至兩個小時是泡在园子裏看各位大神的文章。前些天在研究“ajax無刷新上傳”方面的一些插件,用SWFUpload實現了無刷新上傳的功能,不過個人覺得不是很完美。
昨天在網上找到了一個叫做uploadify的jquery上傳插件,看到园子裏有幾篇文章也是介紹這個插件的,心想何不用這個試試。
不過园子裏的這幾篇文章用到的uploadify還是以前的舊版本uploadify-v2.1.0,我在官網上下載的是uploadify-v3.1版,其中的一些参數以及調用方法也不同了,還好官網有幫助文檔。
(唯一感覺不爽的一點就是這個開發包是針對php的,官網並沒有.NET版本,但至少原理都是一样的,簡單的修改一下就可以了。還是那句話“不僅要知其然,還要知其所以然”,知其所以然了,一切都是浮雲啊)
好了,廢話不多說。先上個效果圖,有圖有真相:

一:從官網下載開發包添加到項目中,我對這個開發包做了一個精簡,刪去了那些php方面的文件:

項目基本結構:

二:添加對css和js文件的引用:

注意jquery.js文件和uploadify.js文件的調用順序。
三:Default.aspx頁面的代碼如下:
<head runat="server">
<title></title>
<link href="js/uploadify/uploadify.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
<script src="js/uploadify/jquery.uploadify-3.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#uploadify").uploadify({
//指定swf文件
'swf': 'js/uploadify/uploadify.swf',
//後台處理的頁面
'uploader': 'UploadHandler.ashx',
//按鈕顯示的文字
'buttonText': '上傳圖片',
//顯示的高度和寬度,默認 height 30;width 120
//'height': 15,
//'width': 80,
//上傳文件的類型 默認为所有文件 'All Files' ; '*.*'
//在瀏覽窗口底部的文件類型下拉菜單中顯示的文本
'fileTypeDesc': 'Image Files',
//允許上傳的文件後綴
'fileTypeExts': '*.gif; *.jpg; *.png',
//發送给後台的其他参數通過formData指定
//'formData': { 'someKey': 'someValue', 'someOtherKey': 1 },
//上傳文件頁面中,你想要用來作为文件隊列的元素的id, 默認为false 自動生成, 不帶#
//'queueID': 'fileQueue',
//選擇文件後自動上傳
'auto': true,
//設置为true將允許多文件上傳
'multi': true
});
});
</script>
</head>
<body>
<div>
<%--用來作为文件隊列區域--%>
<div id="fileQueue">
</div>
<input type="file" name="uploadify" id="uploadify" />
<p>
<a href="javascript:$('#uploadify').uploadify('upload')">上傳</a>|
<a href="javascript:$('#uploadify').uploadify('cancel')">取消上傳</a>
</p>
</div>
</body>
</html>
四:一般處理程序UploadHandler.ashx簡單代碼如下:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//http://go.rritw.com/www.cnblogs.com/babycool/
//接收上傳後的文件
HttpPostedFile file = context.Request.Files["Filedata"];
//其他参數
//string somekey = context.Request["someKey"];
//string other = context.Request["someOtherKey"];
//獲取文件的保存路徑
string uploadPath =
HttpContext.Current.Server.MapPath("UploadImages" + "\\");
//判斷上傳的文件是否为空
if (file != null)
{
if (!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
//保存文件
file.SaveAs(uploadPath + file.FileName);
context.Response.Write("1");
}
else
{
context.Response.Write("0");
} } public bool IsReusable
{
get
{
return false;
}
}
五:用到的参數介紹:
通過查看jquery.uploadify-3.1.js中的默認設置並参考官方文檔可得知:

参數不重新指定則保持默認:
swf:uploadify.swf 文件的相對路徑
uploader:後台處理程序的相對路徑
buttonText:按鈕顯示的文字
上傳文件的類型默認为所有文件 'All Files' '*.*'
可以通過以下兩参數指定,指定方法見步驟三中的代碼:
fileTypeDesc;fileTypeExts;
auto:为true表示選擇文件後自動上傳;如果不想自動上傳,需設定为false,並通過
1 <a href="javascript:$('#uploadify').uploadify('upload')">上傳</a>|
2 <a href="javascript:$('#uploadify').uploadify('cancel')">取消上傳</a>
來指定是上傳還是取消上傳;
multi:設置为true將允許多文件上傳;
method: 提交方式Post 或Get 默認为Post;
queueSizeLimit:當允許多文件上傳時,設置選擇文件的個數,默認值为999 ;
另外,取消上傳圖片的路徑是設置在css文件中的;
其他更多設置可以参考官網的幫助文檔。
還有一個需要注意的一點是:一般在設定了選擇上傳文件路徑時比如只允許上傳*.jpg;*.png;*.gif格式的圖片文件,則除了指定fileTypeDesc;fileTypeExts;兩個参數外,還要在服務器端即一般處理程序中再次對上傳文件的文件擴展名進行判斷,以防一些用戶跳過客戶端驗證上傳惡意文件。
下面附上我在博客园找到的那兩篇介紹uploadify的文章鏈接,供大家参考:
並附上uploadify的官方網站
我整理的開發包:整理uploadify-v3.1.NET開發包
當然,這僅僅是一個簡單的試用,具體用到項目中還要考慮很多方面的問題。
歡迎各位大神多多指教,如果該文章對你有幫助大家可以一起討論討論。
轉載請注明出處。
jQuery無刷新上傳之uploadify簡單試用的更多相关文章
- jQuery无刷新上传之uploadify简单试用
先简单的侃两句:貌似已经有两个月的时间没有写过文章了,不过仍会像以前那样每天至少有一至两个小时是泡在园子里看各位大神的文章.前些天在研究“ajax无刷新上传”方面的一些插件,用SWFUpload实现了 ...
- jQuery无刷新上传之uploadify
引自 文章 http://www.cnblogs.com/babycool/archive/2012/08/04/2623137.html 将文章里的代码整合在了一个解决方案里,直接可以下载测试,上代 ...
- ASP.NET MVC使用jQuery无刷新上传
昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...
- jQuery无刷新上传学习心得
记得刚离开大学,进入目前这家公司不到一个月时,有一位前辈给我们当时的新人讲了下JS无刷新上传的相关知识. 在此之前,一直都是在使用C#提供的服务器上传控件FileUpload,但是每次使用时,都会刷新 ...
- jquery 无刷新上传的小function
function zll_up(click_id,up_url,text_id,show_id){ this.create = function(){} //当点击指定元素时,创建iframe for ...
- ThinkPHP3.2.2 无刷新上传插件uploadify 使用
一. 在控制器中写一个方法,用于上传 public function upload(){ if (!empty($_FILES)) { //图片上传设置 $config = array( 'maxSi ...
- Jquery无刷新上传单个文件
function ajax_photo(photo_type){ $(document).on('change','#sitephoto',function(){ ...
- C#_Jquery无刷新上传
昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...
- 將UNITY作品上傳到Facebook App!
前言 大家好,今天要來介紹如何用UNITY 將製作好的遊戲上傳到Facebook,也就是Facebook App.近期Facebook與Unity合作而推出了新的插件,利用插件可上傳分數.邀請好友.P ...
随机推荐
- java.math.BigDecimal类multiply的使用
java.math.BigInteger.multiply(BigInteger val) 返回一个BigInteger,其值是 (this * val).声明 以下是java.math.BigInt ...
- java线程学习1
java实现多线程有三种方式:继承Thread类,重写run方法,启动使用start:实现runnable接口,重写run方法:实现callable接口,重写call方法(可以有返回值,也可以抛出异常 ...
- C3P0连接池参数配置说明
C3P0连接池参数配置说明 created by cjk on 2017.8.15 常用配置 initialPoolSize:连接池初始化时创建的连接数,default : 3(建议使用) minPo ...
- ubuntu apt-update NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
Fetched 28.1 MB in 11s (2344 kB/s) W: GPG error: http://archive.canonical.com xenial Release: The fo ...
- CSU1018: Avatar
1018: Avatar Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 841 ...
- Python:用户自定义异常
实际开发中,有时候系统提供的异常类型不能满足开发的需求.这时候你可以通过创建一个新的异常类来拥有自己的异常.异常类继承自 Exception 类,可以直接继承,或者间接继承. 1.自定义异常类型 #1 ...
- Python基础 - pip导出依赖环境和安装依赖环境的命令
导出: pip freeze > requirements.txt 安装: pip install -r requirements.txt
- python Django 相关学习笔记
Django框架 pip3 install django 命令: # 创建Django程序 django-admin startproject mysite # 进入程序目录 cd mysite # ...
- 鳥哥的 Linux 私房菜
RootKit Hunter 後端偵測軟體之架設與執行 切換解析度為 800x600 最近更新日期:2004/11/16 由前面幾個章節的說明,我們可以曉得因為主機的某些服務是有漏洞的, 黑客們可以針 ...
- 玛丽卡(codevs 1021)
题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...