无法在ashx中获得控制值

时间:2014-04-17 12:49:25

标签: c# javascript jquery asp.net uploadify

我使用uploadify上传文件。按照本教程:

TUTORIAL

问题是虽然我能够使用

在ASHX上获取文件
HttpPostedFile postedFile = context.Request.Files["Filedata"];

我无法在同一表单上获得输入框的值:

string str = HttpContext.Current.Request.Form["Name"];

ASPX表格

  <body>
        <form id="form1" runat="server"  >
            <a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()">Start Upload</a>&nbsp; 
           |&nbsp;<a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadClearQueue()">Clear</a> 
            <div style = "padding:40px">
                <asp:FileUpload ID="FileUpload1" runat="server" />

            </div>
            <asp:TextBox MaxLength="100" CssClass="txtbox" Width="300px" ID="txtImgRemark" runat="server"> </asp:TextBox>
           <input type="Text" name="password" id="password" value="0" />
        </form>
</body>
</html>
<script type = "text/javascript">
$(window).load(
    function() {
        $("#<%=FileUpload1.ClientID%>").fileUpload({
        'uploader': 'scripts/uploader.swf',
        'cancelImg': 'images/cancel.png',
        'buttonText': 'Browse Files',
        'script': 'Upload.ashx',
        'folder': 'uploads',
        'fileDesc': 'Image Files',
        'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
        'formData': { 'Name': 'arbaaz', 'Num': 1 },
        'multi': true,
        'auto': false
    });
   }
);
</script> 

ASHX

  public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Expires = -1;
        try
        {
            HttpPostedFile postedFile = context.Request.Files["Filedata"];
            string str = HttpContext.Current.Request.Form["password"];
            string savepath = "";
             //blah blah blah

2 个答案:

答案 0 :(得分:0)

您需要在调用期间在fileUpoad()函数中添加另一个参数 formData ,如下所示。

$(window).load(
    function() {
        $("#<%=FileUpload1.ClientID%>").fileUpload({
        'uploader': 'scripts/uploader.swf',
        'formData': {'someKey' : 'someValue', 'someOtherKey' : 1},
        'cancelImg': 'images/cancel.png',
        'buttonText': 'Browse Files',
        'script': 'Upload.ashx',
        'folder': 'uploads',
        'fileDesc': 'Image Files',
        'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
        'multi': true,
        'auto': false
    });
   }
);

在服务器端

string value= context.Request["someKey"];

有关详情,请访问以下链接:formData

答案 1 :(得分:0)

我遇到了同样的问题,其中context.Request [“Name”]给出了null。这是因为HTTP post请求包含查询字符串和表单数据。它不能兼得。