先簡單的侃兩句:貌似已經有兩個月的時間沒有寫過文章了,不過仍會像以前那样每天至少有一至兩個小時是泡在园子裏看各位大神的文章。前些天在研究“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的文章鏈接,供大家参考:

JQuery上傳插件Uploadify使用詳解

利用插件uploadify完成ajax效果的圖片上傳

並附上uploadify的官方網站

我整理的開發包:整理uploadify-v3.1.NET開發包

當然,這僅僅是一個簡單的試用,具體用到項目中還要考慮很多方面的問題。

歡迎各位大神多多指教,如果該文章對你有幫助大家可以一起討論討論。

轉載請注明出處。

jQuery無刷新上傳之uploadify簡單試用的更多相关文章

  1. jQuery无刷新上传之uploadify简单试用

    先简单的侃两句:貌似已经有两个月的时间没有写过文章了,不过仍会像以前那样每天至少有一至两个小时是泡在园子里看各位大神的文章.前些天在研究“ajax无刷新上传”方面的一些插件,用SWFUpload实现了 ...

  2. jQuery无刷新上传之uploadify

    引自 文章 http://www.cnblogs.com/babycool/archive/2012/08/04/2623137.html 将文章里的代码整合在了一个解决方案里,直接可以下载测试,上代 ...

  3. ASP.NET MVC使用jQuery无刷新上传

    昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...

  4. jQuery无刷新上传学习心得

    记得刚离开大学,进入目前这家公司不到一个月时,有一位前辈给我们当时的新人讲了下JS无刷新上传的相关知识. 在此之前,一直都是在使用C#提供的服务器上传控件FileUpload,但是每次使用时,都会刷新 ...

  5. jquery 无刷新上传的小function

    function zll_up(click_id,up_url,text_id,show_id){ this.create = function(){} //当点击指定元素时,创建iframe for ...

  6. ThinkPHP3.2.2 无刷新上传插件uploadify 使用

    一. 在控制器中写一个方法,用于上传 public function upload(){ if (!empty($_FILES)) { //图片上传设置 $config = array( 'maxSi ...

  7. Jquery无刷新上传单个文件

    function ajax_photo(photo_type){        $(document).on('change','#sitephoto',function(){             ...

  8. C#_Jquery无刷新上传

    昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...

  9. 將UNITY作品上傳到Facebook App!

    前言 大家好,今天要來介紹如何用UNITY 將製作好的遊戲上傳到Facebook,也就是Facebook App.近期Facebook與Unity合作而推出了新的插件,利用插件可上傳分數.邀請好友.P ...

随机推荐

  1. mysql中对order by的函数substring_index() , find_in_set()使用

    题目是这样的:sql = "select  *  from table  where  id  in(3,1,2,5)";  怎样使得查询的结果按照 3 ,1 , 2, 5来排序: ...

  2. CAD交互绘制虚线(com接口)

    用户可以在控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY ...

  3. Day 14A 网络编程入门

    ---恢复内容开始--- 计算机网络基础 计算机网络是独立自主的计算机互联而成的系统的总称,组建计算机网络最主要的目的是实现多台计算机之间的通信和资源共享.今天计算机网络中的设备和计算机网络的用户已经 ...

  4. 【C语言】控制台窗口图形界面编程(五):文本移动

    目录 00. 目录 01. CHAR_INFO结构 02. ScrollConsoleScreenBuffer函数 03. 程序示例 04. 官方参考程序 00. 目录 01. CHAR_INFO结构 ...

  5. 第3节 mapreduce高级:4、倒排索引的建立

    倒排索引建立 需求分析 需求:有大量的文本(文档.网页),需要建立搜索索引 最终实现的结果就是哪个单词在哪个文章当中出现了多少次 思路分析: 首选将文档的内容全部读取出来,加上文档的名字作为key,文 ...

  6. LeetCode1-5

    Leetcode1: Given an array of integers, return indices of the two numbers such that they add up to a ...

  7. iframe天气预报

    <iframe style="float: right;" width="420" scrolling="no" height=&qu ...

  8. JavaScript异步编程解决方案探究

    javascript的天生单线程特性,使得异步编程对它异常重要,早期的通常做法是用回调函数来解决.但是随着逻辑的复杂,和javascript在服务端的大显神通,使得我们很容易就陷入“回调陷井”的万丈深 ...

  9. 笔试算法题(05):转换BST为双向链表 & 查找栈中的最小元素

    出题:把二元查找树转变成排序的双向链表.输入一棵二元查找树,要求将该二元查找树按照中序转换成一个排序的双向链表,要求不能创建任何新的节点,只能调整指针的指向: 分析: 递归的思路,当前节点需要进行的处 ...

  10. hihocoder 1515 分数调查(树形dp)

    hihocoder 1515 分数调查 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校总共有N名学生,编号1-N.学校刚刚进行了一场全校的古诗文水平测验. ...