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 ...
一周排行
  • 某日,发现硬盘空间报警.随检查空间使用情况,发现是SQL Server 数据库占用空间所致. 经检查主要是日志库占用大量空间,可能是之前打开SharePoint 的审核所致. 因为磁盘空间所限,必须压缩数据库文件占用 ...
  • 易网科技讯 11月6日消息,上海市第一中级人民法院就暴雪娱乐及易网公司诉上海游易网络科技有限公司不正当竞争纠纷一案作出判决,要求上海游易网络科技有限公司立即停止不正当竞争行为,停止通过信息网络或以任何其他形式运营.发 ...
  • 1. HP-UX的交换分区机制: 系统每启动一个进程,都会在交换区预留一定的空间(等同于该进程使用物理内存的大小),以防内存不足时,有足够的交换区来临时存放数据,但不一定真正使用.但是交换区预留以后,不管是不是真的被 ...
  • 今天遇到个问题很蛋疼啊,别的手机没问题,唯独三星机型的手机跳转到相机之后,回来activity没了.这个或许是三星内部回收机制的关系,因为相机打开之后消耗会比较大, 所以后面的进程都给暂时回收掉了,加入 androi ...
  • 环境:Oracle 11g R2 + SQLPlus           问题:Oracle使用scott用户登录不能登录,提示已经加锁.           解决:打开SQL Plus>执行以下命令 [sql ...
  • oracle移动表 在创建表时可以为表指定存储空间,如果不指定,oracle会将该表存储到默认的表空间中.根据需要可以将表从一个表空间移动到另一个表空间中.语法如下: alter table table_name m ...
  • C#播放背景音乐通常有四种方式: 1.播放系统事件声音 2.使用System.Media.SoundPlayer播放wav仅仅是对波形音乐 3.使用MCI Command String多媒体设备程序接口播放mp3,a ...
  • 今天是平安夜,大家开心地度过一个平安夜的同时,也完成了很多软件的调试工作,我们争取在下周前完成本阶段的所有调试工作. 具体工作如下: 具体工作: 小组成员 今日任务 明日任务 工作时间 李睿琦 软件调试 软件调试过程 ...
  • 首先需要相关包共四个: qt-win-opensource-4.8.5-mingw.exe qt-creator-windows-opensource-2.8.1.exe MinGW-gcc440_1.zip cma ...
  •     日前,第51届ICCNA大会传出消息:苹果IOS系统率先实现对".网址"域名全球访问支持.这意味着,全球iPhone手机用户,使用手机上网时,直接在默认safari浏览器中输入" ...