ajax+ashx上传图片

HTML

<div>
            <a  class="file">上传图片
                <input type="file"  id="btnfile" name="btnfile">
            </a>
        </div>
CSS

.file {
    position: relative;
    display: inline-block;
    background: #D0EEFF;
    border: 1px solid #99D3F5;
    border-radius: 4px;
    padding: 4px 12px;
    overflow: hidden;
    color: #1E88C7;
    text-decoration: none;
    text-indent: 0;
    line-height: 20px;
}
.file input {
    position: absolute;
    font-size: 100px;
    right: 0;
    top: 0;
    opacity: 0;
}
.file:hover {
    background: #AADFFD;
    border-color: #78C3F3;
    color: #004974;
    text-decoration: none;
}

JS

$(".file").on("change", "input[type='file']", function () {
                    var conID = $("#chat_insert_box>textarea");
                     if ($.trim(conID.val()).split('[img]').length > 1) {
                        layer.msg("只能包含一张图片,回复失败!");
                        return;
                        }
                   var strData = new FormData();
                   $.each($('#btnfile')[0].files, function (i, file) {
                       if ("image/png" == file.type || "image/jpeg" == file.type) {
                           if (10485760 < file.size) {
                               layer.msg("图片上传失败!不能大于10M");
                               return;
                           }
                           strData.append("upfile", file);
                           var index = layer.msg("上传中...", { icon: 16, time: false, shade: [0] })
                           var strUrl;
                           strUrl = "handler/JqDataHandle.ashx?mode=insertImg";
                           $.ajax({
                               type: "POST",
                               url: strUrl,
                               data: strData,
                               processData: false,
                               contentType: false,
                               async: false,
                               success: function (data) {
                                   layer.close(index);
                                   if (data.substring(0, 5) == "Error") {
                                       layer.msg(data.substring(6, data.length));
                                       return;
                                   }
                                   data = data.split(',');
                                   $("#chat_insert_box>textarea").val(function (n, c) {
                                    if($.trim(c)==""){
                                        return c + '[img]' + data[1] + '[/img]';
                                    } else { return c + '\n' + '[img]' + data[1]+ '[/img]'; }
                                })
                               },
                               error: function (err) {
                                   layer.close(index);
                                   layer.msg("抱歉发生错误!请检查网络状况");
                                   return;
                               }
                           })
                       } else {
                           layer.msg("请选择正确的文件格式!jpg或png");
                           return;
                       }
                   });
            });

ashx

 public void insertImg (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string result = string.Empty;
        string filePath = string.Empty;
        string fileNewName = string.Empty;
        try {
            HttpFileCollection files = context.Request.Files;
            if (files.Count > 0)
            {
                fileNewName = DateTime.Now.ToString("yyyyMMddHHmmssff") + "_" + System.IO.Path.GetFileName(files[0].FileName);
                try { files[0].SaveAs(context.Server.MapPath("~/saveImg/"+fileNewName)); }
                catch {
                    context.Response.Write("Error:"+filePath.ToString());
                    context.Response.End();
                    return;
                }
                result = "OK," + fileNewName + "";
            }
            else
            {
                result = "Error:错误代码:02,上传失败!";
            }
        }
        catch
        {
                result = "Error:错误代码:03,上传失败!";
        }

        context.Response.Write(result);
        context.Response.End();
    }


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax是一种用于在客户端和服务器之间进行异步通信的技术,可以在不刷新整个网页的情况下更新部分网页内容。JSON是一种轻量级的数据交换格式,常用于在服务器和客户端之间传递数据。ashx是一种处理程序,用于在服务器上接收和处理Ajax请求。 "ajax json ashx实现列表页.rar"是一个压缩文件,可能包含一个使用以上技术实现的列表页的项目。 该项目可能包括一个ashx处理程序,用于接收Ajax请求并处理相关操作。程序可能使用JSON格式将数据从服务器发送到客户端,以便在列表页上更新显示。通过Ajax技术,用户可以在不刷新整个页面的情况下获取最新的数据,并在列表页上进行交互操作,如添加、删除或编辑列表项。 实现这个列表页可能涉及到以下步骤: 1. 创建一个ashx处理程序,用于处理列表页的请求。 2. 在客户端使用Ajax技术发送请求给服务器,请求列表数据。 3. 服务器接收到请求后,从数据库或其他数据源中获取数据,并将数据封装成JSON格式。 4. 服务器将封装好的JSON数据响应给客户端。 5. 客户端接收到响应后,解析JSON数据,并根据数据更新列表页的显示。 6. 在列表页上实现交互功能,如添加、删除或编辑列表项。 7. 根据用户的操作,使用Ajax技术发送相应的请求给服务器,进行数据的增删改操作。 8. 服务器接收到请求后,进行相应的操作,并响应结果给客户端。 9. 客户端接收到响应后,更新列表页的显示。 通过以上的步骤,可以实现一个使用Ajax、JSON和ashx处理程序的列表页,用户可以在列表页上进行数据的增删改操作,并实时更新数据的显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值