ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例

HTML代码 和js 代码

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script src="~/js/jquery-1.8.3.min.js"></script>
    <script src="~/js/ajaxfileupload.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#butLoad").click(function () {
                $("#img1").attr("src", "../images/timg.gif");
                //调用action
                $.ajaxFileUpload({
                    url: "../Upload/UpLoad",
                    secureuri: false, //一般设置为false
                    fileElementId: ‘Img‘, //文件上传空间的id属性  <input type="file" id="Img" name="file" />
                    dataType: ‘json‘, //返回值类型
                    success: function (data, status)  //服务器成功响应处理函数
                    {
                        $("#img1").attr("src", data.imgurl);
                        if (typeof (data.error) != ‘undefined‘) {
                            if (data.error != ‘‘) {
                                alert(data.error);
                            } else {
                                alert(data.msg);
                            }
                        }
                    },
                    error: function (data, status, e)//服务器响应失败处理函数
                    {
                        alert(e);
                    }

                });
            });

            $("#butLoadAsp").click(function () {
                $("#imgAsp").attr("src", "../images/timg.gif");
                //调用aspx
                $.ajaxFileUpload({
                    url: "../Ajax/UpLoad.aspx?__Action=UpLoadImg",
                    secureuri: false, //一般设置为false
                    fileElementId: ‘ImgAsp‘, //文件上传空间的id属性  <input type="file" id="Img" name="file" />
                    dataType: ‘json‘, //返回值类型
                    success: function (data, status)  //服务器成功响应处理函数
                    {
                        $("#imgAsp").attr("src", data.imgurl);
                        if (typeof (data.error) != ‘undefined‘) {
                            if (data.error != ‘‘) {
                                alert(data.error);
                            } else {
                                alert(data.msg);
                            }
                        }
                    },
                    error: function (data, status, e)//服务器响应失败处理函数
                    {
                        alert(e);
                    }

                });

            });
        });
        function ChImages(obj) {

            $("#img1").attr("src", obj.value)
        }
    </script>
</head>
<body>
    <div>
        <h3>mvc-ajax</h3>
        <input type="file" id="Img" name="file" onchange="ChImages(this)" /> @*注意:name一定要写*@
        <button id="butLoad">上传</button>
        <img src="" id="img1" alt="请选择图片" width="200" />
    </div>
    <div>
        <h3>asp.net-ajax</h3>
        <input type="file" id="ImgAsp" name="file" /> @*注意:name一定要写*@
        <button id="butLoadAsp">上传</button>
        <img src="" id="imgAsp" alt="请选择图片" width="200" />
    </div>
</body>
</html>

mvc 控制中代码

[HttpPost]//过滤
        public JsonResult UpLoad()
        {

            HttpFileCollectionBase files = Request.Files;//这里只能用<input type="file" />才能有效果,因为服务器控件是HttpInputFile类型
            object result = new { error="error", msg="上传失败",imgurl= files[0].FileName};
            string msg = string.Empty;
            string error = string.Empty;
            string imgurl;
            if (files.Count > 0)
            {
                string savePath = Server.MapPath("/") + "UpLoadImg\\";//保存文件地址
                //string saveDir = System.Web.HttpContext.Current.Server.MapPath(savePath);
                if (!Directory.Exists(savePath)) {
                    Directory.CreateDirectory(savePath);
                }
                files[0].SaveAs(savePath + System.IO.Path.GetFileName(files[0].FileName));
                msg = " 成功! 文件大小为:" + files[0].ContentLength;
                imgurl = "../UpLoadImg/" + files[0].FileName;
                result =new { error="success", msg= msg, imgurl=imgurl };
            }
            return Json(result, "text/html");
        }

aspx.cs 代码

public partial class UpLoad : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string action = Request["__Action"];
            if (action==null || action == string.Empty)
                return;
            Page p = this;
            Type pageType = p.GetType();
            MethodInfo method = pageType.GetMethod(action);
            if (method != null)
                method.Invoke(p, null);
        }
        public void UpLoadImg()
        {
            HttpFileCollection files = Request.Files;//这里只能用<input type="file" />才能有效果,因为服务器控件是HttpInputFile类型
          //  object result = new { error = "error", msg = "上传失败", imgurl = files[0].FileName };
            string result = "{ error:‘error‘, msg:‘上传失败‘,imgurl:‘" + files[0].FileName + "‘}";
            string msg = string.Empty;
            string error = string.Empty;
            string imgurl;
            if (files.Count > 0)
            {
                string savePath = Server.MapPath("/") + "UpLoadImg\\";//保存文件地址
                //string saveDir = System.Web.HttpContext.Current.Server.MapPath(savePath);
                if (!Directory.Exists(savePath))
                {
                    Directory.CreateDirectory(savePath);
                }
                files[0].SaveAs(savePath + System.IO.Path.GetFileName(files[0].FileName));
                msg = " 成功! 文件大小为:" + files[0].ContentLength;
                imgurl = "../UpLoadImg/" + files[0].FileName;
                result = "{ error:‘" + error + "‘, msg:‘" + msg + "‘,imgurl:‘" + imgurl + "‘}";
            }
            Response.Clear();
            Response.Write(result.ToString());
            Response.End();

        }
    } 

MVC和aspx 有些不同,MVC获取HttpInputFile 用HttpFileCollectionBase 类,aspx获取HttpInputFile 用HttpFileCollection 类

个人学习,请多多指教

代码:http://files.cnblogs.com/files/BensonHai/UploadImage.rar  本人是用VS2015写的

时间: 2024-10-07 07:56:22

ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例的相关文章

aspx页面中用Input 标签实现上传图片功能

实现上传图片功能需单独的建立一个aspx页面, 其中前台页面需要注意两点: a)实现上传功能的input的type="file" b)设置请求报文头为 enctype="multipart/form-data" 类型 前台代码如下: <form method="post" enctype="multipart/form-data"> <table class="list"> <

MVC ueditor的使用(实现上传图片功能)

之前使用ckeditor不能实现上传图片功能,只要是我不知道怎么使用啦o( ̄ε ̄*),然后就换了ueditor~~,可以实现上传图片功能啦~\(≧▽≦)/~~ 下面是我的步骤:去官网下载最新版ueditor,解压缩后放到文件目录下,如下: <script src="~/Content/ueditor/ueditor.all.js"></script> <script src="~/Content/ueditor/ueditor.all.min.j

关于ajaxfileupload.js上传图片使用历程(struts2)

因为要使用上传图片功能,附加图片的描述信息, 而传统的<s: file/>由于一些限制在这个小模块中无法使用, 于是搜到了使用ajaxfileupload.js插件进行上传的方法,在使用过程中,jsp,js,struts2 因为自己不熟悉ajax的情况出了许多的小问题,在这里记录一下, 方便自己查看,也希望能帮到他人, 首先说一下思路,通过点击上传直接触发js 的function 调用后台把图片拷贝到指定服务器目录,返回保存的路径到前台,然后跟随图片描述信息一起用ajax异步传到后台.(PS:

实用的ajaxfileupload插件

一.ajaxFileUpload是一个异步上传文件的jQuery插件. 传一个不知道什么版本的上来,以后不用到处找了. 语法:$.ajaxFileUpload([options]) options参数说明: 1.url  上传处理程序地址. 2,fileElementId  需要上传的文件域的ID,即<input type="file">的ID.3,secureuri 是否启用安全提交,默认为false. 4,dataType 服务器返回的数据类型.可以为xml,scrip

轻量级web富文本框——wangEditor使用手册(6)——配置“上传图片”功能

1. 引言 上一节讲解了在wangEditor中"插入代码"的功能,用到了弹出框.这一节的"上传图片"也得用弹出框.弹出框菜单如何配置,在上一节已经讲过,此处将不再重复描述,只讲上传图片的重点内容. 其实,真正的上传图片的功能,不是我自己做的,而是借用了一个很强大的上传插件--uploadify--好多朋友应该知道这个东西.那么我们就来看看,如何把uploadify这个强大的工具,整合到wangEditor中来. 下载地址:https://github.com/wa

富文本文件CKEDITOR增加上传图片功能(.net)

如题,本身的CKEDITOR控件并没有开启上传图片的功能, 打开图像按钮,只有图像信息和高级两个table选项卡,版本不同,显示略有差异,我的实现是有两种方法都可以添加上传功能, 第一种方法使用CKEDITOR自身代码功能 “预览”中有一大堆鸟语,看得很不爽.可以使用1或2来进行清除. 1:可以打开ckeditor/plugins/image/dialogs/image.js文件,搜索“b.config.image_previewText”就能找到这段鸟语了,(b.config.image_pr

ajaxFileUpload插件

关键词: $.ajaxFileUpLoad(); data status dataType 参考资料: http://www.cnblogs.com/kissdodog/archive/2012/12/15/2819025.html 第一步: 先引入jQuery与ajaxFileUpload插件.注意先后顺序,这个不用说了,所有的插件都是这样. <script src="jquery-1.7.1.js" type="text/javascript">&l

iOS 程序插件及功能动态更新思路

所用框架及语言 iOS客户端-Wax(开发愤怒的小鸟的连接Lua 和 Objc的框架),Lua,Objc, 服务端-Java(用于返回插件页面) 工具框架链接地址:Wax - https://github.com/probablycorey/wax  Netty - https://netty.io/  用做Http服务器,返回页面 由于Lua脚本语言,不需要编译即可运行,这点是我的这个思路可以执行的大前提,再加上苹果允许像Lua这样的脚本的存在,这一思路才能得以实现.个人感觉这一思路有点类似于

WCF实现上传图片功能

初次学习实现WCF winform程序的通信,主要功能是实现图片的传输. 下面是实现步骤: 第一步: 首先建立一个类库项目TransferPicLib,导入wcf需要的引用System.ServiceModel,建立接口ITransferPicService,建立类文件TransferPicService实现ITransferPicService接口. 代码:ITransferPicService ITransferPicService using System; using System.Co