博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件上传之伪Ajax方式上传 (转)
阅读量:5052 次
发布时间:2019-06-12

本文共 2262 字,大约阅读时间需要 7 分钟。

  最近做项目遇到了些关于上传的功能模块,在网上找了很多关于上传的相关资料,找到了一个依赖于Jquery写的jquery.uploadify类库,这个类库的上传功能支持的非常全面,不过遗憾的是它是依赖于flash来处理上传,所以在页面中呈现不了传统的上传控件的浏览方式,因为项目需求必须以传统的<input type='file'/>形态模式出现在页面中!所以只好舍去jquery.uploadify类库强大功能,于是乎自己研究了一番。最终实现了一个静态上传的功能!好了,废话不多说,代码献上!如阁下有更好的建议欢迎强力拍砖!小弟不胜感激!

首先我的后台程序用的是ASP.NET

Javascript用到了Jquery类库

这里先给大家介绍下为什么叫伪Ajax方式上传,因为这个上传不会使当前页面产生刷新的效果,并且也没有用任何的Ajax技术,但是实现了页面无刷新的上传效果,因此小弟称为伪Ajax方式。呵呵,关子卖了很久了!介绍下这个核心吧!核心主要是利用<form>和<iframe>实现!相信对Web Html认识比较深的大虾们一定猜到个大概了吧!

前台:

    File Upload    
缩略图

后台:

/// /// 页面加载.在这里我简单的写了下文件上传的处理Code/// /// /// protected void Page_Load(object sender, EventArgs e){    try    {        //获取当前Post过来的file集合对象,在这里我只获取了的文件控件        HttpPostedFile file = Request.Files["fileUp"];        if (file != null)        {            //当前文件上传的目录            string path = Server.MapPath("~/Test/");            //当前待上传的服务端路径            string imageUrl = path + Path.GetFileName(file.FileName);            //当前文件后缀名            string ext = Path.GetExtension(file.FileName).ToLower();            //验证文件类型是否正确            if (!ext.Equals(".gif") && !ext.Equals(".jpg") && !ext.Equals(".png") && !ext.Equals(".bmp"))            {                //这里window.parent.uploadSuccess()是我在前端页面中写好的javascript function,此方法主要用于输出异常和上传成功后的图片地址                Response.Write("");                Response.End();            }            //验证文件的大小            if (file.ContentLength > 1048576)            {                //这里window.parent.uploadSuccess()是我在前端页面中写好的javascript function,此方法主要用于输出异常和上传成功后的图片地址                Response.Write("");                Response.End();            }            //开始上传            file.SaveAs(imageUrl);            //这里window.parent.uploadSuccess()是我在前端页面中写好的javascript function,此方法主要用于输出异常和上传成功后的图片地址            //如果成功返回的数据是需要返回两个字符串,我在这里使用了|分隔  例: 成功信息|/Test/hello.jpg            Response.Write("");            Response.End();        }        else        {            //上传失败            Response.Write("upload lose!");            Response.End();        }    }    catch {        //上传失败        Response.Write("upload lose!");        Response.End();    }}

转载于:https://www.cnblogs.com/blackbean/archive/2011/05/09/2041394.html

你可能感兴趣的文章
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
RijndaelManaged 加密
查看>>
Android 音量调节
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
Redis事务
查看>>
Web框架和Django基础
查看>>
python中的逻辑操作符
查看>>
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
yii模型ar中备忘
查看>>
JVM内存回收机制简述
查看>>
洛咕 P2480 [SDOI2010]古代猪文
查看>>
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
dijkstra (模板)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>