1、Fine Uploader特点

Fine Uploader Features:

A:支持文件上传进度显示.

B:文件拖拽浏览器上传方式

C:Ajax页面无刷新.

D:多文件上传.

F:跨浏览器.

E:跨后台服务器端语言.

2、页面前端代码

  <div id="btnUpload"></div>
        $(function () {

            $('#btnUpload').fineUploader({
                request: {
                    endpoint: 'Handler/UpLogo.ashx'
                },
                validation: {
                    allowedExtensions: ['jpeg', 'jpg', 'png']
                },
                multiple: false,
                text: {
                    uploadButton: '<div>上传头像</div>'
                }
            }).on('complete', function (event, id, fileName, responseJson) {

                if (responseJson.success) {
                    $("#absoluteUrl").val(responseJson.path);
                    $("#jcrop_target").attr("src", responseJson.url);
                    $("#jcrop_target").css({ "width": 300, "height": 300 });
                    $("#preview").attr("src", responseJson.url);
                    $("#preview").css({ "width": 100, "height": 100 });

                    ias.update();
                }
            });
        });

2、Handler文件代码

<%@ WebHandler Language="C#" Class="UpLogo" %>
using System;
using System.Web;
using System.IO;
using System.Text;
using System.Net;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using ECS.Utility;

public class UpLogo : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        if (context.Request != null && context.Request.Files.Count > 0)
        {
            var HttpFile = context.Request.Files[0];
            var allowedExt = new List<string> { ".jpg", ".gif", ".bmp", ".png" };
            var fileExt = Path.GetExtension(HttpFile.FileName).ToLower();
            var File_Name = Path.GetFileNameWithoutExtension(HttpFile.FileName);
            var toFileName = Guid.NewGuid().ToString() + fileExt;

            var toFileFullPath = context.Server.MapPath("~/UpFiles/UserTemFace/");
            var viewPath = "/UpFiles/UserTemFace/";
            var Title = File_Name;
            DirectoryInfo di = new DirectoryInfo(toFileFullPath);
            if (!di.Exists)
            {
                di.Create();
            }

            ECS.Model.A_User Model = new ECS.BLL.A_User().GetModel(ValUtil.GetUserID());
            if (Model != null)
            {
                //toFileName = Model.UserFaceImg;
                string saveFile = toFileFullPath + toFileName;
                //先删除临时文件
                //var _filePath = toFileFullPath + "\\" + toFileName;
                //if (File.Exists(_filePath))
                //{
                //    FileInfo fi = new FileInfo(_filePath);
                //    if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
                //    {
                //        fi.Attributes = FileAttributes.Normal;
                //    }
                //    File.Delete(_filePath);
                //}

                HttpFile.SaveAs(saveFile);

                Model.UserFaceImg = toFileName;
                new ECS.BLL.A_User().Update(Model);
            }

            string imgeUrl = "";
            if (fileExt.ToLower().Equals(".jpg") || fileExt.ToLower().Equals(".gif") || fileExt.ToLower().Equals(".bmp") || fileExt.ToLower().Equals(".png"))
            {
                imgeUrl = viewPath + toFileName;
            }
            else
            {
                context.Response.Write("{success:false,msg:'只能上传图片类型的文件'}");
                context.Response.End();
                return;
            }
            string url = viewPath + "/" + toFileName;

            context.Response.Write(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(new { success = true, url = url, path = toFileName }));
            context.Response.End();

        }
        else
        {
            context.Response.Write(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(new { success = false }));
            context.Response.End();
        }

    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

fineuploader使用实例的更多相关文章

  1. 最近学习工作流 推荐一个activiti 的教程文档

    全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...

  2. fineuploader 上传jquery 控件

    fineuploader 昨天用的一个jquery插件. 可参考这篇文章以前写的 file-uploader  跟 这个跟里面介绍的2个jquery 插件相比.觉得更强大写..版本号都3.9 了….. ...

  3. 理清fineuploader无刷新上传的一些事

    1.fineuploader是一款不依赖与jquery的异步无刷新上传组件,fineuploader采用ajax方式实现对文件上传,返回值都是以json的格式,对后台服务器操作和前端dom对象一些操作 ...

  4. js-静态、原型、实例属性

    本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...

  5. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  6. EntityFramework Core 1.1是如何创建DbContext实例的呢?

    前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...

  7. redis集成到Springmvc中及使用实例

    redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...

  8. 流程开发Activiti 与SpringMVC整合实例

    流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...

  9. UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)

    前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...

随机推荐

  1. ansible基础及使用示例

    1 介绍 Ansible 是一个系统自动化工具,用来做系统配管理,批量对远程主机执行操作指令. 2 实验环境 ip 角色 192.168.40.71 ansible管控端 192.168.40.72 ...

  2. 无线渗透测试之wifi密码破解

    [声明]:本文仅供个人学习使用,请勿违法破解他人wifi 测试工具: 1.CDlinux启动盘:(请参照https://my.oschina.net/u/3112136/blog/800713) 2. ...

  3. canvas绘制时钟及注释及save和restore的用法

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. python爬站长之家写一个信息搜集器

    前言:不知道写什么好,绕来绕去还是写回爬虫这一块. 之前的都爬了一遍.这次爬点好用一点的网站. 0x01: 自行备好requests模块 目标站:http://tool.chinaz.com/ 0x2 ...

  5. Spring学习——从入门到精通

    本文章是博主原创,转载需注明出处. 第一篇先简单入个门--通过Spring创建对象 开发环境为Myeclipse2013,JDK版本为1.6,不要嫌它老,新知识都是在旧知识的基础上建立起来的,所谓基础 ...

  6. CSS小技巧使用

    1.清除浮动 浮动给我们的代码带来的麻烦,想必不需要多说,我们会用很多方式来避免这种麻烦,其中我觉得最方便也是兼容性最好的一种是....// 清除浮动 .clearfix{ zoom: 1; } .c ...

  7. Jmeter_上传与下载

    今天重点说一下Jmeter的上传与下载 1:Jmeter上传文件 首先确认你的文件名称,参数名称,MIME类型,这些可以从接口文档里面获取,或者直接在页面抓包然后从请求头里面查看.注意,此处我的文件路 ...

  8. laravel中实现短信发送验证码

    前段时间想实现一个短信验证码的功能,但是卡了很长时间. 首先我用的是阿里云的短信服务业务,其首次接入流程如下: 在阿里云上开通短信服务后需要做的: 1,申请签名  2,申请模板   3,创建Acces ...

  9. mybatis like条件添加%的方法

    使用 MySQL可以使用CONCAT函数.例: <if test="userName != null and userName != ''"> and user_nam ...

  10. ABP框架源码学习之授权逻辑

    asp.net core的默认的几种授权方法参考"雨夜朦胧"的系列博客,这里要强调的是asp.net core mvc中的授权和asp.net mvc中的授权不一样,建议先看前面& ...