2015-12-17 3 views
0

Я пытаюсь загрузить файл из клиентского приложения с формой окна C# в приложение ASP.NET C#. На самом деле у меня есть этот код работает в клиентском приложении:C# - Request.Files всегда пуст после UploadFile

WebClient uploader = new WebClient(); 
string UploadFilePath = "<filepath>"; 
string uploadWebUrl = "http://localhost:51037/(S(044401gmyxhg3uz01ulngfdp))/upload.aspx"; 
byte[] responseArray = uploader.UploadFile(uploadWebUrl, UploadFilePath); 

И это upload.aspx страница

<%@ Import Namespace="System"%> 
<%@ Import Namespace="System.IO"%> 
<%@ Import Namespace="System.Net"%> 
<%@ Import NameSpace="System.Web"%> 

<Script language="C#" runat=server> 
void Page_Load(object sender, EventArgs e) { 

    foreach(string f in Request.Files.AllKeys) { 
     HttpPostedFile file = Request.Files[f]; 
     file.SaveAs("~/Download/"+file.FileName); 
    } 
} 

</Script> 
<html> 
<body> 
<p> Upload complete. </p> 
</body> 
</html> 

дело в том, что, на самом деле, «Request.Files» пустая строка массива и я не понимаю, почему

+0

upload.aspx безопасной страница или незащищенная страница? –

+0

Это на самом деле уже существующий проект, но для того, что я знаю (страница upload.aspx совершенно новая и создана мной, но я не эксперт asp.net), страница должна быть небезопасной. – Sciutz

ответ

0

Я думаю, вам просто нужно добавить «POST» для вашей команды загрузки файла:

byte[] responseArray = uploader.UploadFile(uploadWebUrl, "POST", UploadFilePath); 

Вот документация от Microsoft: https://msdn.microsoft.com/en-us/library/aa329790(v=vs.71).aspx

В нем, вот методе подпись для UploadFile:

public byte[] UploadFile(
string address, 
string method, 
string fileName 
); 
+0

не работайте – Sciutz

+0

Чтобы помочь вам, людям потребуется больше отзывов. Вы должны описать, что происходит, включая любые сообщения об ошибках, которые вы получаете, и т. Д. –