【发布时间】:2014-05-04 12:54:20
【问题描述】:
我正在尝试在不使用任何 asp 控件的情况下上传图片。到目前为止,我一直在尝试:
<form id="form1" data-ajax="false" method="post" runat="server" enctype="multipart/form-data">
<input type="file" id="uploadFile" name="uploadFile" runat="server"/>
<input type="submit" class="btn-login" data-corners="true" value="Yükle" onclick="UploadPhoto()" />
</form>
在我的 .aspx 页面和 JQuery 的 UploadPhoto() 方法中:
function UploadPhoto() {
$.ajax({
type: "POST",
url: "IncidentChange.aspx/UploadPhoto",
contentType: "application/json; charset=utf-8",
success: function (msg) {
},
error: function () {
}
});
}
我在后面发布 C# 代码。但是,我无法从代码隐藏中访问上传的项目。
[WebMethod]
public static string UploadPhoto()
{
try
{
byte[] fileData = null;
using (var binaryReader = new BinaryReader(HttpContext.Current.Request.Files[0].InputStream))
{
fileData = binaryReader.ReadBytes(HttpContext.Current.Request.Files[0].ContentLength);
}
}
catch (Exception ex)
{
}
return null;
}
但是 Request.Files 似乎是一个空数组。由于该方法是静态的([WebMethod]),我无法访问该方法中的输入控件来获取发布的文件。我该如何克服这个问题?谢谢。
【问题讨论】:
-
您没有在 ajax 数据中发送文件
标签: c# jquery asp.net ajax file-upload