我有以下的客戶端功能:Asp.net上傳文件使用XMLHttpRequest的C#服務器
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函數。 問題是在該頁面上調用特定的方法。
你的WebMethod也不是一成不變的解決這個問題。改變它像公共靜態無效Img_Upload() – Kadir
謝謝,我試過了,但它不起作用... :( – Inbal
你的網絡方法根本沒有被調用,或者你不能設置斷點? –