zoukankan      html  css  js  c++  java
  • FancyUpload3.0

    官方网没有.net版本 只有php版 下面是.net

    曾祥展

    曾祥展

    css:

    <style type="text/css">
        
    .swiff-uploader-box a {
        display: none !important;
    }
     
    a:hover, a.hover {
        color: red;
    }
     
    #demo-status {
        padding: 10px 15px;
        width: 420px;
        border: 1px solid #eee;
    }
     
    #demo-status .progress {
        background: url(img/progress.gif) no-repeat;
        background-position: +50% 0;
        margin-right: 0.5em;
        vertical-align: middle;
    }
     
    #demo-status .progress-text {
        font-size: 0.9em;
        font-weight: bold;
    }
     
    #demo-list {
        list-style: none;
        width: 450px;
        margin: 0;
    }
     
    #demo-list li.validation-error {
        padding-left: 44px;
        display: block;
        clear: left;
        line-height: 40px;
        color: #8a1f11;
        cursor: pointer;
        border-bottom: 1px solid #fbc2c4;
        background: #fbe3e4 url(img/failed.png) no-repeat 4px 4px;
    }
     
    #demo-list li.file {
        border-bottom: 1px solid #eee;
        background: url(img/file.png) no-repeat 4px 4px;
        overflow: auto;
    }
    #demo-list li.file.file-uploading {
        background-image: url(img/uploading.png);
        background-color: #D9DDE9;
    }
    #demo-list li.file.file-success {
        background-image: url(img/success.png);
    }
    #demo-list li.file.file-failed {
        background-image: url(img/failed.png);
    }
     
    #demo-list li.file .file-name {
        font-size: 1.2em;
        margin-left: 44px;
        display: block;
        clear: left;
        line-height: 40px;
        height: 40px;
        font-weight: bold;
    }
    #demo-list li.file .file-size {
        font-size: 0.9em;
        line-height: 18px;
        float: right;
        margin-top: 2px;
        margin-right: 6px;
    }
    #demo-list li.file .file-info {
        display: block;
        margin-left: 44px;
        font-size: 0.9em;
        line-height: 20px;
        clear
    }
    #demo-list li.file .file-remove {
        clear: right;
        float: right;
        line-height: 18px;
        margin-right: 6px;
    }
    
    </style>

    js:

    <script type="text/javascript" src="js/mootools-1.2.4-core.js"></script>
    <script type="text/javascript" src="js/Swiff.Uploader.js"></script>
    <script type="text/javascript" src="js/Fx.ProgressBar.js"></script>
    <script type="text/javascript" src="js/FancyUpload2.js"></script>
    
    <script type="text/javascript">
    window.addEvent('domready', function() { 
    var up = new FancyUpload2($('demo-status'), $('demo-list'), { 
    verbose: true,
    url: $('form-demo').action,
    path: 'js/Swiff.Uploader.swf',
    typeFilter: {
        'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'
    },
    target: 'demo-browse',
    onLoad: function() {
        $('demo-status').removeClass('hide');
        $('demo-fallback').destroy(); 
        this.target.addEvents({
            click: function() {
                return false;
            },
            mouseenter: function() {
                this.addClass('hover');
            },
            mouseleave: function() {
                this.removeClass('hover');
                this.blur();
            },
            mousedown: function() {
                this.focus();
            }
        });
    
        $('demo-clear').addEvent('click', function() {
            up.remove(); 
            return false;
        });
    
        $('demo-upload').addEvent('click', function() {
            up.start(); 
            return false;
        });
    },
    
    onSelectFail: function(files) {
        files.each(function(file) {
            new Element('li', {
                'class': 'validation-error',
                html: file.validationErrorMessage || file.validationError,
                title: MooTools.lang.get('FancyUpload', 'removeTitle'),
                events: {
                    click: function() {
                        this.destroy();
                    }
                }
            }).inject(this.list, 'top');
        }, this);
    },
    
    onFileSuccess: function(file, response) {
        var json = new Hash(JSON.decode(response, true) || {});
    
        if (json.get('status') == '1') {
            file.element.addClass('file-success');
            file.info.set('html', '<strong>Image was uploaded:</strong> ' + json.get('width') + ' x ' + json.get('height') + 'px, <em>' + json.get('mime') + '</em>)');
        } else {
            file.element.addClass('file-failed');
            file.info.set('html', '<strong>An error occured:</strong> ' + (json.get('error') ? (json.get('error') + ' #' + json.get('code')) : response));
        }
    },
    
    onFail: function(error) {
        switch (error) {
            case 'hidden': 
                alert('To enable the embedded uploader, unblock it in your browser and refresh (see Adblock).');
                break;
            case 'blocked':
                alert('To enable the embedded uploader, enable the blocked Flash movie (see Flashblock).');
                break;
            case 'empty': 
                alert('A required file was not found, please be patient and we fix this.');
                break;
            case 'flash': 
                alert('To enable the embedded uploader, install the latest Adobe Flash plugin.')
        }
    }
    });
    });
    </script>
    

    html:

    <form action="Upload.axd" method="post" enctype="multipart/form-data" id="form-demo">
        <fieldset id="demo-fallback">
            <legend>File Upload</legend>
            <p>
                This form is just an example fallback for the unobtrusive behaviour of FancyUpload.
                If this part is not changed, something must be wrong with your code.
            </p>
            <label for="demo-photoupload">
                Upload a Photo:
                <input type="file" name="Filedata" />
            </label>
        </fieldset>
     
        <div id="demo-status" class="hide">
            <p>
                <a href="#" id="demo-browse">浏览</a> |
                <a href="#" id="demo-clear">清除列表</a> |
                <a href="#" id="demo-upload">上传</a>
            </p>
            <div>
                <strong class="overall-title"></strong><br />
                <img src="img/bar.gif" class="progress overall-progress" />
            </div>
            <div>
                <strong class="current-title"></strong><br />
                <img src="img/bar.gif" class="progress current-progress" />
            </div>
            <div class="current-text"></div>
        </div>
     
        <ul id="demo-list"></ul>
     
    </form>

    后台:

    Upload.cs:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    
    /// <summary>
    /// Upload handler for uploading files.
    /// </summary>
    public class Upload : IHttpHandler
    {
        public Upload()    {    }
    
        #region IHttpHandler Members
    
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Charset = "utf-8";
            HttpPostedFile oFile = context.Request.Files["Filedata"];
            string strUploadPath = HttpContext.Current.Server.MapPath(@"~/Upload"+"\\");
            if (oFile != null)
            {
                if (!Directory.Exists(strUploadPath))
                {
                    Directory.CreateDirectory(strUploadPath);
                }
                oFile.SaveAs(strUploadPath + oFile.FileName);
    
                //context.Response.Write("1");出错 要对应JSON格式?
                context.Response.Write("{\"status\":\"1\",\"name\":\"\",\"hash\":\"\",\"width\":250,\"height\":12,\"mime\":\"image\"}");
            }
            else
            {
                //context.Response.Write("0");
                context.Response.Write("{\"status\":\"0\",\"name\":\"\",\"hash\":\"\",\"width\":250,\"height\":12,\"mime\":\"image\"}");
            }
    
            // Used as a fix for a bug in mac flash player that makes the 
            // onComplete event not fire
            HttpContext.Current.Response.Write(" ");
    
        }
    
        public bool IsReusable
        {
            get { return false; }
        }
    
    
    
        #endregion
    }

    Web.config:

    <httpHandlers>
          
          <remove verb="POST,GET" path="Upload.axd"/>
          <add verb="POST,GET" path="Upload.axd" type="Upload"/>
    
    
    <httpRuntime maxRequestLength="1550000"/>

    实现IHttpHandler 接口可用.axd直接访问

    在开发一个上传客户端的时间,实现了IHttpHandler 封装一个新类。目的是给外部程序(如flash,flex,javascrtip)访问。不需要建立html、aspx形式文件。

    web.config配置

    <system.web>

    <httpHandlers>
       <remove verb="POST,GET" path="FlashUpload.axd"/>
       <add verb="POST,GET" path="FlashUpload.axd" type="FlashUpload"/>
      </httpHandlers>
    </system.web>

    但注意事项,当web.config作了权限配置的话,要对其文件进行权限开通!

    <location path="fileupload.axd">
            <system.web>
                <authorization>
                    <allow users="*"/>
                </authorization>
            </system.web>
        </location>

    这也通用于.axd外的文件。没有权限访问就会访问失败,在 MS Asp.net Ajax 中的就曾看过“脚本错误: 'Sys'未定义,原因就是没开通权限!

    官方网:

    http://digitarald.de/

  • 相关阅读:
    【剑指Offer】面试题55
    一大波趣图:CSS的力量
    你必须收藏的Github技巧
    3月份GitHub上最热门的Java开源项目
    趣图:快下班了,剩一个bug,修复一下再走
    Java程序员必备的Intellij插件
    为什么前后端分离了,你比从前更痛苦?
    趣图:好好干,今天再加个班
    高并发下的下单功能设计
    Mybatis的基本要素--核心对象
  • 原文地址:https://www.cnblogs.com/rhinemetal/p/2569538.html
Copyright © 2011-2022 走看看