我使用uploadify上传文件。按照本教程:
问题是虽然我能够使用
在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>
| <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
答案 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请求包含查询字符串和表单数据。它不能兼得。