jQuery MiniUI

 找回密码
 立即注册
查看: 3506|回复: 6
打印 上一主题 下一主题

传图控件 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-4-9 15:17:03 |只看该作者 |倒序浏览
在userHandler.ashx页面,怎么接收页面上的传图控件。


<input class="mini-htmlfile" name="User_Face" limitType="*.jpg;*.png;*.gif;*.jpeg" />
function SaveData() {
        var o = form.getData();

        form.validate();
        if (form.isValid() == false) return;

        var json = mini.encode([o]);
        $.ajax({
            url: "../ybt_inc/ajax/userHandler.ashx?method=SaveUser",
            type: 'post',
            data: { data: json },
            cache: false,
            success: function (text) {
                if (text == "ok")
                {
                    alert("增加成功!");
                }
                else if (text == "ExitUser") {
                    alert("该手机号已存在,请重新添加!");
                }
                else {
                    alert("添加失败:" + text);
                }
                //CloseWindow("save");
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);
                CloseWindow();
            }
        });
    }
userHandler.ashx
        public void ProcessRequest(HttpContext context)
        {
            Eble_UserService userService = new Eble_UserService();
            switch (context.Request["method"])
            {
                case "SaveUser":
                    String json = context.Request["data"];
                    ArrayList rows = (ArrayList)Test.JSON.Decode(json);
                    foreach (Hashtable row in rows)
                    {
                        String id = row["id"] != null ? row["id"].ToString() : "";
                        //根据记录状态,进行不同的增加、删除、修改操作
                        String state = row["_state"] != null ? row["_state"].ToString() : "";

                        if (state == "added" || id == "")           //新增:id为空,或_state为added
                        {
                                    int tag = userService.AddFast(Save(row));
                                    if (tag > 0) { context.Response.Write("ok"); }
                        }
                        else if (state == "removed" || state == "deleted")
                        {
                            // new Test.TestDB().DeleteEmployee(id);
                        }
                        else if (state == "modified" || state == "") //更新:_state为空或modified
                        {
                            //new Test.TestDB().UpdateEmployee(row);

                        }
                    }

                    break;
            }

        }
private Eble_User Save(Hashtable htuser)
           // 获得程序路径
            string tempFile = HttpContext.Current.Request.PhysicalApplicationPath;

            //找到目标文件对象
            HttpPostedFile uploadFile = HttpContext.Current.Request.Files[htuser["User_Face"].ToString()];

            // 如果有文件, 则保存到一个地址
            if (uploadFile != null)
            {
                uploadFile.SaveAs(string.Format("{0}{1}{2}", tempFile, "ybt_upload\\member\\member_Org\\", uploadFile.FileName));
               User_Face = uploadFile.FileName;
            }
            else { User_Face = null; }
return User_Face;
}

Rank: 2

沙发
发表于 2014-4-9 15:39:35 |只看该作者
版主~~~呼叫版主~~~~HELP~~~~

Rank: 8Rank: 8

板凳
发表于 2014-4-9 16:47:05 |只看该作者
jissie丢 发表于 2014-4-9 15:39
版主~~~呼叫版主~~~~HELP~~~~

上传图片,你把图片上传到服务器之后,肯定会有一个图片的上传路劲的,也就能得出图片所在的位置

你把这个位置返回给前台,然后设置给比如img标签的src即可显示

Rank: 2

地板
发表于 2014-4-9 17:13:20 |只看该作者
factory 发表于 2014-4-9 16:47
上传图片,你把图片上传到服务器之后,肯定会有一个图片的上传路劲的,也就能得出图片所在的位置

你把这个 ...

我现在无法取到上传的图片。
uploadFile 始终为空,这是什么原因呢?
/找到目标文件对象
  HttpPostedFile uploadFile = HttpContext.Current.Request.Files["User_Face"];

Rank: 8Rank: 8

5#
发表于 2014-4-9 17:22:56 |只看该作者
jissie丢 发表于 2014-4-9 17:13
我现在无法取到上传的图片。
uploadFile 始终为空,这是什么原因呢?
/找到目标文件对象

后台把上传路劲+文件名组合返回给前台

前台监听上传成功事件
在事件函数里面
e.serverData能获取到后台返回的信息,从中得到路径

Rank: 2

6#
发表于 2014-4-10 14:31:24 |只看该作者
factory 发表于 2014-4-9 17:22
后台把上传路劲+文件名组合返回给前台

前台监听上传成功事件

function SaveData() {
        var o = form.getData();
        form.validate();
        if (form.isValid() == false) return;
       var json = mini.encode([o]);
        alert(json);
        $.ajax({
            url: "../ybt_inc/ajax/userHandler.ashx?method=SaveUser",
            type: 'post',
            data: { data: json },
            cache: false,
            success: function (text) {
                if (text == "ok") {
                    alert("增加成功!");
                    window.location = "user_window.aspx";
                }
                else if (text == "ExitUser") {
                    alert("该手机号已存在,请重新添加!");
                }
                else {
                    alert("添加失败:" + text);
                }
                //CloseWindow("save");
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);
                CloseWindow();
            }
        });
    }
我注意到我这边传值的json 中 User_Face:a.jpg,
怎么把<input class="mini-htmlfile" name="User_Face" id="User_Face" runat="server" limittype="*.jpg;*.png;*.gif;*.jpeg" />
这个控件传过去?

Rank: 8Rank: 8

7#
发表于 2014-4-10 14:39:13 |只看该作者
jissie丢 发表于 2014-4-10 14:31
function SaveData() {
        var o = form.getData();
        form.validate();

传控件? 没这种做法的.... 干嘛要把控件传过去

Archiver|普加软件

GMT+8, 2025-7-18 16:29 , Processed in 1.059046 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部