2013-02-25 12 views
6

Mam aplikację kliencką, która wysyła żądanie POST do asp.net URL (służy do przeniesienia pliku do .NET).Jak zapisać treść żądania POST jako plik w .NET

Jak zrobić stronę asp.net odbiera tę prośbę i zapisać ją jako plik?

@ Darin Dimitrov Próbowałem Twojego kodu, ale mam 500 internal server error jak go śledzić?!

+0

myślę, że to jest ważne pytanie. Jeśli robisz post IFRAME w celu przesłania pliku dla IE <= 9, który wygląda jak AJAX, musisz utworzyć formularz html z plikiem i opublikować na stronie .NET. Dokładnie to próbuję zrobić. Zatem pytanie brzmi, w jaki sposób strona ASPX wyodrębnia plik z opublikowanych danych. O to właśnie pyta. – Sean

+1

Zgadzam się z @Sean ... to jest ważne pytanie ... nie wiem, dlaczego został zamknięty. – FastTrack

+0

Zauważyłem, że czasami pytania są zamknięte, ponieważ nie są sformułowane w najlepszy angielski. Co jest absolutnie głupim powodem, dla którego można zamknąć pytanie. Jeśli treść pytania jest uzasadniona, czy cokolwiek innego ma znaczenie? –

Odpowiedz

17

Jeśli klient używa kodowania żądań multipart/form-data (co jest standardem do przesyłania plików), można pobrać pobrany plik z kolekcji Request.Files. Na przykład:

protected void Page_Load(object sender, EventArgs e) 
{ 
    foreach (HttpPostedFile file in Request.Files) 
    { 
     var fileName = Path.GetFileName(file.FileName); 
     var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
     file.SaveAs(path); 
    } 
} 

lub jeśli znasz nazwę używanego przez klienta można bezpośrednio do niego dostęp:

HttpPostedFile file = Request.Files["file"]; 

Jeśli natomiast klient nie używa standardowego kodowania na żądanie może być konieczne przeczytanie pliku z pliku Request.InputStream.

+0

Czy możesz podać mi pełny przykład, nie jestem ekspertem w .NET. Zrobiłem z klientem Android i chcę zrobić komponent po stronie serwera? – Adham

+0

Oczywiście, zaktualizowałem swoją odpowiedź na przykładzie. –

+0

Dziękuję, proszę pana, czy to działa jako strona klienta? Http: //stackoverflow.com/questions/1067655/how-to-upload-a-file-using-java-httpclient-library-working-with-php- dziwne-pr/1068132 # 1068132 – Adham

4

Można również zapisać całą prośbę używając

HttpContext.Current.Request.SaveAs(filename,includeHeaders) 

Zakładając, że dane nie są przesyłane jako multipart/form-data

+0

tnx, używam tego kodu w Prostym-Ajax-Uploaderze podczas przesyłania w mvc lub webformach. https://github.com/LPology/Simple-Ajax-Uploader –

Powiązane problemy