ajax实现无刷新上传图片

很多朋友问我如何实现无刷新上传图片,这里小黑给大家找了一篇关于无刷新实现图片上传的文章,希望对大家有帮助.

本文客服端使用的是ajax.net异步上传文件
1.在
    protected void Page_Load(object sender, EventArgs e)
    {
        Ajax.Utility.RegisterTypeForAjax(typeof(renzheng1));
    }
中注册类。
2.后台代码中的webservice
//filePath  本地文件路径
//ext 文件扩展名

//其实就是后台代码中的一个函数
 [Ajax.AjaxMethod()]
    public string RenZhengCom(string filePath,string ext)
    {
        string str = "/UploadFile/renzheng/" + Pq168Help.GenerateFileName()+ext;

            string SaveUrl = Server.MapPath(str);//上传到什么位置
            WebClient myWebClient = new WebClient();//创建WebClient实例
            myWebClient.Credentials = CredentialCache.DefaultCredentials;//得到网络凭据
            FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
            BinaryReader r = new BinaryReader(fs);
            if (fs.Length / 1024 > 200)
            {
                return "你输入的图片大于200k!";
            }
            byte[] postArray = r.ReadBytes((int)fs.Length);
            Stream postStream = myWebClient.OpenWrite(SaveUrl, "PUT");
            postStream.Write(postArray, 0, postArray.Length);
            postStream.Close();
            return "上传成功!";  
    }
3.js代码
   function saveimg(obj)
   {
       var img=document.getElementById('upfile');
       if(CheckImg(img.value.toLowerCase()))
       {
          obj.disabled="disabled";
          var tt=renzheng1.RenZhengCom(idzhi.value,img.value,getExt(img.value));
          obj.disabled="";
          alert(tt.value);
       }
       else
       {
           alert('请上传正确的图片!');
       }
   } 

 function CheckImg(str)
   {
        var strFilter=".jpeg|.gif|.jpg|.png|.bmp|.pic|"
        if(str.indexOf(".")>-1)
        {
            var p = str.lastIndexOf(".");

            var strPostfix=str.substring(p,str.length) + '|';       
            strPostfix = strPostfix.toLowerCase();

            if(strFilter.indexOf(strPostfix)>-1)
            {

                return true;
            }
        }       

        return false;
   }
4.页面
<body >
<form id="form1" runat="server">
    <div>
    </div>
    <div>
上传营业执照:
                <input type="file" id="upfile" οnchange="showpic(this);" />*注意,文件小于200k,文件格式要求jpg、gif、png和bmp。
                <div><img alt="上传图片" width="180px" height="135px" id="ImageUrl"/></div>
                <input type="button" value="提交" οnclick="saveimg(this)" />
    </div></form>
</body>
5.其他
使用ajax.net,需要引用ajax.dll,并在web.config中设置
<httpHandlers>
      <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值