asp.net使用jquery.form实现图片异步上传

首先我们需要做准备工作:

jquery下载:http://files.cnblogs.com/tianguook/jquery1.8.rar

jquery.form.js下载:http://files.cnblogs.com/tianguook/jquery.form.js

页面JqueryFormTest.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JqueryFormTest.aspx.cs" Inherits="JqueryFormTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1/xhtml">
<head runat="server">
    <title></title>
    <script src="JS/jquery-1.8.0.js" type="text/javascript"></script>
    <script src="JS/jquery.form.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn").click(function () {
                $("#fm1").ajaxSubmit({
                    url: "img.ashx",
                    type: "post",
                    success: function (data) {
                        alert(data);
                        //IE显示图片会默认加上<PRE></PRE>,着必须要把去除掉才能在低版本ie显示  
                        data = data.replace("<PRE>", "").replace("</PRE>", "");
                        $("#divimg").append("<img src='" + data + "' width='200px' height='200px'/>");
                        //清空file控件里面的值  
                        var file = $("#btnfile");
                        file.after(file.clone().val(""));
                        file.remove();
                    }
                });
            });
        })  
    </script>
</head>
<body>
    <form id="fm1" method="post">
    <!--method="post"不能省略,在ie里面必不可少-->
    <input type="file" id="btnfile" name="btnfile" value="提交" />
    <br />
    <input type="button" id="btn" value="上传" />
    </form>
    <div id="divimg">
        
    </div>
</body>
</html>

img.ashx:

<%@ WebHandler Language="C#" Class="img" %>

using System;
using System.Web;

public class img : IHttpHandler {   
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        //获取上传的文件的对象  
        HttpPostedFile img = context.Request.Files["btnfile"];

        //获取上传文件的名称  
        string s = img.FileName;
        //截取获得上传文件的名称(ie上传会把绝对路径也连带上,这里只得到文件的名称)  
        string str = s.Substring(s.LastIndexOf("\\") + 1);  
        string path = "~/upload/"+ str;
        //保存文件  
        img.SaveAs(context.Server.MapPath(path));
        //HttpRuntime.AppDomainAppVirtualPath主要是获取应用程序虚拟路径名称,因为响应给页面时不会自动添加而导致无法显示图片
        context.Response.Write(HttpRuntime.AppDomainAppVirtualPath + path.Substring(1));//path.Substring(1)用来去除第一个~字符
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}

 

更多相关文章
  • 我没有时间去唠叨自己的事,可是你们是我喜欢的人,ay很愿意写给你们分享:去年的万人阅读的总结链接:<没学历的IT人生没那么悲催,献给程序员们> 提前声明:本文不良反应:请自备垃圾桶,准备装节操.因为节操掉了一地. 茗洋原创诗词:山重水复哦哈妖,牧童遥指纳尼村.商女不知么么哒,隔江犹唱亚麻 ...
  •  近日,一直在阅读一些新观点新思维的书,吸取若干好玩有趣的现实视点,让自已在大众创业万众创新的浪潮里呛几口凉水,冷静冷静,看清情势,理清思路,从现在看未来,在未来看现在,这是创业者需要拥有的眼光. 以下观点不是我个人的,只是本人在阅读时偶遇的一些观点,并有所感悟,能理解到作者的意思,或者被观点/句子 ...
  • 易网科技讯 3月6日消息,华友世纪(NASDAQ:HRAY)今天公布截至2008年12月31日的2008年第四季度及全年财报显示,其第四季度总营收为1443万美元,环比增长6.65%,同比下滑9.22%.运营亏损528.6万美元,净亏损918万美元. 华友世纪本季度总营收1443万美元,环比增长6. ...
  • 2008年2月27日,国内知名的信息网络安全厂商金山联手全球最大的中文搜索引擎百度共同推出一款基于WEB的零客户端(网页方式)的安全解决方案--"百度安全中心",打造中国互联网最大免费杀毒平台,为广大网民提供免费的专业网络安全服务. 据了解,历经金山与百度半年的研发和测试后推出的 ...
  • 点击查看:MWC2014专题报道
  • 不管你有多好的商业点子也只能算是纸上谈兵,你需要的是将这些好的想法变为现实的资金,因此成功获得风投公司的亲睐对企业的发展至关重要.那么,究竟要怎样才能让自己的企业被风投公司选中呢?下面就是消费者信用与理财服务网站Gredit Karma 创始人Kenneth Lin为你支的招,Gredit Karm ...
一周排行
  • 在FreeBSD系统中,网络能力十分重要,对于一个标准的FreeBSD系统,至少要有一个网络界面以便与其他计算机通信.最常见的网络界面为以太网卡.此外FreeBSD也支持Token Ring和FDDI,以及普通电话拨 ...
  • 本文主要讲述如何在js里面从多个服务端servlet中找到可用的地址 一般项目部署到生产环境之后会有一个生产网段(就是你可以在家访问)和一个办公网段(只能在公司才能访问). 我们的项目部署好了之后,外部系统调用我们的 ...
  • ORACLE 中的RAC特性保护的是实例,RMAN特性保持的是数据,而Dataguard特性则是连实例带数据一块"保"了,三个特性相互配合能够在一定程度上构建一个安全可靠高可用的ORACLE数据库 ...
  • hadoop安装前准备-------------------1 用VMware安装Ubuntu <1>下载32位版本的ubuntu kylin 14 http://www.ubuntu.com.cn/do ...
  • Gartner正式提出下一代防火墙(NGFW)概念已有4年.在这4年间,无论是IT应用环境.用户需求,还是安全厂商战略,都发生着巨大的改变.下一代防火墙的发展,正是在各种力量的综合作用下,在争议中前行.而厂商们对下一 ...
  • 编者按:作为国内老牌家电龙头四川长虹遭到"知情人士".长达十年的财务问题被公开后,举国震惊.人搜集证据的时间长达13年,距今时间最久的证据为1997年.材料称,四川长虹虚增销售收入巨大.根据材料汇 ...
  • 据科技新闻网站PCWorld报道,英特尔近日宣布,下一代安腾处理器将继续采用目前的32纳米制造工艺,而非此前计划中的更先进的工艺.安腾处理器主要用于惠普的Integrity高端服务器中,而英特尔的这一举动使得外界开始 ...
  • 1.TF-IDF 2.基于语义的统计语言模型 文章关键词提取基础件能够在全面把握文章的中心思想的基础上,提取出若干个代表文章语义内容的词汇或短语,相关结果可用于精化阅读.语义查询和快速匹配等. 采用基于语义的统计语言 ...
  • 在经济全球化.信息全球化的大环境下,开放标准.开放计算以及开源软件已经成为IT产业发展的重要推力.当前,中国大量开发者参加了开源社区的工作,并作出了很大的贡献,中国正逐步从开源社区消费者变为贡献者.我国的一些大企业纷 ...
  • 1 python一切皆为对象,因为现实 包含了一系列的数据和操作这些数据的方法的一个整体,就叫作对象. 自行车 属性:手刹车,轮胎,脚踏板方法:如何前进的方法,控制停止的方法,控制方向 实际内容 男人与女人的恋爱男人 ...