zoukankan      html  css  js  c++  java
  • ajax+jquery+ashx如何实现上传文件

    第一:建立Default.aspx页面

    <html>  
    <head runat="server">  
        <title>ajax图片上传</title>  
        <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>  
        <script src="js/jquery.form.js" type="text/javascript"></script>  
          
        <script type="text/javascript">        
          function upload(){  
            var path = document.getElementById("File1").value;  
            var img = document.getElementById("img1");  
            if($.trim(path)==""){  
                alert("请选择要上传的文件");  
                return;  
                }  
                  
            $("#form1").ajaxSubmit({  
                success: function (str) {   
                    if(str!=null && str!="undefined"){  
                        if (str == "1") {alert("上传成功");document.getElementById("img1").src="images/logo.jpg?"+new Date();/*上传后刷新图片*/}  
                        else if(str=="2"){alert("只能上传jpg格式的图片");}  
                        else if(str=="3"){alert("图片不能大于1M");}  
                        else if(str=="4"){alert("请选择要上传的文件");}  
                        else {alert('操作失败!');}  
                    }  
                    else alert('操作失败!');  
                },  
                error: function (error) {alert(error);},  
                url:'Handler.ashx', /*设置post提交到的页面*/  
                type: "post", /*设置表单以post方法提交*/  
                dataType: "text" /*设置返回值类型为文本*/  
            });  
        }        
        </script>  
    </head>  
    <body>  
        <form id="form1" runat="server">  
            <input id="File1" name="File1" type="file" />  
            <input id="iptUp" type="button" value="上传Logo"  onclick="upload()"/>  
            <img id="img1" alt="网站Logo" src="images/weblogo.jpg" />  
        </form>  
    </body>  
    </html> 


     
    二、新建一个一般处理文件Handler.ashx

    <%@ WebHandler Language="C#" class="Handler" %>  
      
    using System;  
    using System.Web;  
      
    public class Handler : IHttpHandler {  
          
        public void ProcessRequest (HttpContext context) {  
            HttpPostedFile _upfile = context.Request.Files["File1"];  
            if (_upfile == null)  
            {  
                ResponseWriteEnd(context, "4");//请选择要上传的文件   
            }  
            else  
            {  
                string fileName = _upfile.FileName;/*获取文件名: C:Documents and SettingsAdministrator桌面123.jpg*/  
                string suffix = fileName.Substring(fileName.LastIndexOf(".") + 1).ToLower();/*获取后缀名并转为小写: jpg*/  
                int bytes = _upfile.ContentLength;//获取文件的字节大小   
      
                if (suffix != "jpg")  
                    ResponseWriteEnd(context, "2"); //只能上传JPG格式图片   
                if (bytes > 1024 * 1024)  
                    ResponseWriteEnd(context, "3"); //图片不能大于1M   
      
                _upfile.SaveAs(HttpContext.Current.Server.MapPath("~/images/logo.jpg"));//保存图片   
                ResponseWriteEnd(context, "1"); //上传成功   
            }  
        }  
      
        private void ResponseWriteEnd(HttpContext context, string msg)  
        {  
            context.Response.Write(msg);  
            context.Response.End();  
        }  
          
        public bool IsReusable {  
            get {  
                return false;  
            }  
        }  
    }  


     可以按照自己的需求来修改,希望对您有帮助!

  • 相关阅读:
    legend3---图片裁剪实例代码
    JPG 和 JPEG 格式有什么区别
    jpg与png图片的优缺点
    心得体悟帖---200320(legend3它的真实意义,在于资质提升,一举多得)
    心得体悟帖---200320(觉得录课录不下去了,可以去招聘市场找找激励,这个真的特别有效)
    心得体悟帖---200320(我必不甘于人之下,所以还是得自己干,自己好好录课)
    ES6参考---Promise对象
    范仁义js课程---70、sort方法
    JS实现异步编程的4种方法(总结)
    JS执行机制详解
  • 原文地址:https://www.cnblogs.com/netserver/p/4525207.html
Copyright © 2011-2022 走看看