Heim > Backend-Entwicklung > PHP-Tutorial > Wie lade ich Dateien mit HTTP POST Multipart/Form-Data in Windows Phone 8 auf einen Server hoch?

Wie lade ich Dateien mit HTTP POST Multipart/Form-Data in Windows Phone 8 auf einen Server hoch?

Barbara Streisand
Freigeben: 2024-12-14 09:51:15
Original
592 Leute haben es durchsucht

How to Upload Files to a Server using HTTP POST Multipart/Form-Data in Windows Phone 8?

Hochladen von Dateien auf einen Server mit HTTP POST Multipart/Form-Data in Windows Phone 8

In Windows Phone 8 Hochladen von Dateien auf einen Server über HTTP POST Multipart/Form -data beinhaltet die Verwendung der HttpWebRequest-Klasse. So können Sie es umsetzen:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

async void MainPage_Loaded(object sender, RoutedEventArgs e)

{

    var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(DBNAME);

    byte[] fileBytes = null;

    using (var stream = await file.OpenReadAsync())

    {

        fileBytes = new byte[stream.Size];

        using (var reader = new DataReader(stream))

        {

            await reader.LoadAsync((uint)stream.Size);

            reader.ReadBytes(fileBytes);

        }

    }

     

    // Construct HTTP request with multipart/form-data content type and userID data

    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.myserver.com/upload.php");

    httpWebRequest.ContentType = "multipart/form-data";

    var boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");

    httpWebRequest.Method = "POST";

     

    // Begin obtaining request stream for writing file bytes and userID data

    var asyncResult = httpWebRequest.BeginGetRequestStream((ar) => { GetRequestStreamCallback(ar, fileBytes, boundary); }, httpWebRequest);

}

 

private void GetRequestStreamCallback(IAsyncResult asynchronousResult, byte[] postData, string boundary) 

{

    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; 

    Stream postStream = request.EndGetRequestStream(asynchronousResult); 

     

    // Write file bytes to request stream

    postStream.Write(postData, 0, postData.Length); 

     

    // Write userID data to request stream

    var lineBreak = "\r\n";

    var formData = $"--{boundary}{lineBreak}Content-Disposition: form-data; name=\"userid\"{lineBreak}{lineBreak}SOME_ID{lineBreak}";

    var formDataBytes = System.Text.Encoding.UTF8.GetBytes(formData);

    postStream.Write(formDataBytes, 0, formDataBytes.Length);

     

    // Closing boundary string

    var closingBoundary = $"--{boundary}--{lineBreak}";

    var closingBoundaryBytes = System.Text.Encoding.UTF8.GetBytes(closingBoundary);

    postStream.Write(closingBoundaryBytes, 0, closingBoundaryBytes.Length); 

     

    postStream.Close(); 

    var asyncResult = request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); 

 

private void GetResponseCallback(IAsyncResult asynchronousResult) 

    HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; 

    HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); 

    // ... Handle response

}

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie lade ich Dateien mit HTTP POST Multipart/Form-Data in Windows Phone 8 auf einen Server hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage