【发布时间】:2014-01-10 18:34:00
【问题描述】:
我有以下客户端功能:
function UploadFile() {
var formData = new FormData();
var file = document.getElementById("file").files[0];
formData.append("file", file);
var uploadServerSideScriptPath = "Login.aspx/Img_Upload";
var xhr = new XMLHttpRequest();
xhr.open("POST", uploadServerSideScriptPath, true);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader("X-File-Name", file.name);
xhr.setRequestHeader("X-File-Size", file.size);
xhr.setRequestHeader("X-File-Type", file.type);
xhr.send(formData);
}
服务器端是:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Img_Upload()
{
HttpContext postedContext = HttpContext.Current;
HttpPostedFile file = postedContext.Request.Files[0];
string name = file.FileName;
byte[] binaryWriteArray = new
byte[file.InputStream.Length];
file.InputStream.Read(binaryWriteArray, 0,
(int)file.InputStream.Length);
FileInfo file_Info = new FileInfo(file.FileName);
string ext = file_Info.Extension;
string file_Name = Guid.NewGuid().ToString() + "_" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ext;
FileStream objfilestream = new FileStream(Server.MapPath("img//profilePIC//" + file_Name), FileMode.Create, FileAccess.ReadWrite);
objfilestream.Write(binaryWriteArray, 0,
binaryWriteArray.Length);
objfilestream.Close();
}
我在 Img_Upload 中设置了一个断点,但它从未命中。 我使用了提琴手,请求似乎没问题。 任何想法为什么?
如果我使用 var uploadServerSideScriptPath = "Login.aspx",我会进入 page_load 函数。 问题是调用该页面上的特定方法。
【问题讨论】:
-
您的网络方法不是静态的。改变它像 public static void Img_Upload()
-
谢谢,我试过了,还是不行……:(
-
你的web方法根本没有被调用或者你不能设置断点?
-
我试过了: var xhr = new XMLHttpRequest(); xhr.open("POST", "Login.aspx/test"); xhr.send();调用 [WebMethod] public static void test(object obj) { string a = "test"; }也不行
标签: c# javascript asp.net file-upload xmlhttprequest