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 ...
一周排行
  •     本文介绍界面的快速设计:一.以下快捷键指的是对窗体表格上组件的操作:●快捷键1:[Ctrl+UP]-向上移动当前组件(精确);[Ctrl+Left]-向左移动当前组件(精确);[Ctrl+Down]-向下移动 ...
  • 毫无疑问,杰克韦尔奇就是这样一位宗师.他关于战略的5张PPT既简洁又深刻.首先简洁,就是5张PPT,任何人都能理解:同时又不肤浅,没有足够的商业洞察力,根本无法回答他的16个问题. 作为企业管理者,你可以要求你的团队 ...
  • 据悉,当地时间4月24日,这名男子扮成小丑躲在公路旁的草丛中,当一位女子骑着自行车路过时,他突然举着斧头跳出来,一边乱叫一边疯狂追赶女子.而该男子的两名朋友则跟在一旁录下全程.不久,三人被捕.虽然三人坚持称这只是一个 ...
  • 基础 XML全称ExtensibleMarkup Language(可扩展标记语言):一种用来传输数据的标记语言. 看到这个定义,或许很多想学下去的兴趣就直减一半.看到标记语言,这是什么啊!标记语 言%#%##.?其 ...
  • 图书管理系统前景与范围文档                                               目录 一.业务需求... 1 1.应用背景... 1 2.业务机遇... 1 3.业务目标... ...
  • 新京报快讯(记者李丹丹)互联网信息办公室召开新闻发布会,公布了近期被依法关闭的一批网站.栏目和微信公众账号.记者从会上了解到,今年国家网信办将全面推进网络真实身份信息的管理,包括微博.贴吧和网站等均实行实名制.国家网 ...
  • 假设静态库文件lib×××.a在/home/fiber/Desktop/lib下, 1.cd /home/fiber/Desktop下: 2.pwd >> /etc/ld.so.conf 3.ldconf ...
  • 之前在用Hadoop写ML算法的时候就隐约感觉Hadoop实在是不适合ML这些比较复杂的算法.记得当时写完kmeans后,发现每个job完成后都需要将结果放在HDFS中,然后下次迭代的时候再从文件中读取,对于kmea ...
  • 路怒了. 要淡定,心态要好. 不能和不要命的傻X较劲. 路怒不好! 淡定!
  • 做Android游戏开发也有半年了,实际上我接触Android也是半年... 一个没有任何游戏开发的经验的毕业生,就这样屁颠屁颠地走上了游戏开发之路. 我也是最近2个月才开始知道,原来游戏开发有游戏引擎的~! 发现A ...