Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Dateien mithilfe von HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 effektiv auf einen Server hochladen?

Wie kann ich Dateien mithilfe von HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 effektiv auf einen Server hochladen?

Linda Hamilton
Freigeben: 2024-12-30 15:25:14
Original
710 Leute haben es durchsucht

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

Hochladen von Dateien auf einen Server mit HTTP POST Multipart/Form-Data

Das Hochladen von Dateien auf einen Server ist eine häufige Aufgabe bei der Entwicklung von Webanwendungen. HTTP POST multipart/form-data ist ein MIME-Typ, der zum Übertragen von Dateien zusammen mit anderen Formulardaten verwendet wird. Dieser Artikel bietet eine umfassende Anleitung zum Hochladen von Dateien mithilfe von HTTP POST Multipart/Formulardaten in Windows Phone 8 und Windows 8 und behebt das häufige Problem, dass der Code die Datei nicht hochlädt oder Fehler bereitstellt.

Windows Phone 8 Implementierung

Der erste Codeblock in der Frage versucht, eine SQLite-Datenbank mithilfe von HTTP-POST-Multipart-/Formulardaten in Windows Phone 8 hochzuladen. Der bereitgestellte Code stößt jedoch auf ein Problem, bei dem Das fileBytes-Array ist leer. Dies könnte daran liegen, dass nicht die richtige Methode zum Lesen der Datei aus „IsolatedStorageFile“ verwendet wird.

Um dieses Problem zu beheben, sollten Sie den folgenden Code zum Lesen der Datei verwenden:

var file = await ApplicationData.Current.LocalFolder.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);
    }
}
Nach dem Login kopieren

Ein weiteres Problem ist Übergeben zusätzlicher Daten wie „userid=SOME_ID“ zusammen mit der Datei. Im bereitgestellten Code gibt es keinen Mechanismus zum Übergeben dieser Daten. Um zusätzliche Daten einzuschließen, kann das HttpWebRequest-Objekt wie folgt verwendet werden:

NameValueCollection postData = new NameValueCollection();
postData.Add("userid", "SOME_ID");
byte[] postDataBytes = Encoding.UTF8.GetBytes(postData.ToString());
postStream.Write(postDataBytes, 0, postDataBytes.Length);
Nach dem Login kopieren

Windows 8-Implementierung

Der zweite Codeblock in der Frage verwendet eine neuere API, HttpClient, zum Hochladen von Dateien. Der Code geht jedoch davon aus, dass ein MultipartFormDataContent-Objekt verwendet wird, um sowohl die Datei als auch die zusätzlichen Daten zu kapseln. Diese Annahme ist falsch, da HttpClient das direkte Senden von Multipart-/Formulardatenanforderungen unterstützt, wodurch die Notwendigkeit eines dazwischen liegenden MultipartFormDataContent-Objekts entfällt.

Der folgende Code zeigt, wie eine Datei mit HttpClient in Windows 8 hochgeladen wird:

HttpClient httpClient = new HttpClient();
ByteArrayContent fileContent = new ByteArrayContent(fileBytes);
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
MultipartFormDataContent multiPartContent = new MultipartFormDataContent();
multiPartContent.Add(fileContent, "file", "file.ext");
HttpResponseMessage response = await httpClient.PostAsync("http://www.myserver.com/upload.php", multiPartContent);
Nach dem Login kopieren

In diesem Beispiel wird das fileContent-Objekt erstellt und den Dateibytes zugewiesen. Der MediaTypeHeaderValue wird verwendet, um den Inhaltstyp der Datei anzugeben. Die Datei wird zusammen mit dem Dateinamen und der Erweiterung zum MultipartFormDataContent-Objekt hinzugefügt. Auf die Antwort vom Server kann durch Überprüfen des HttpResponseMessage-Objekts zugegriffen werden.

Fazit

In diesem Artikel wurde der Prozess des Hochladens von Dateien auf einen Server mithilfe von HTTP POST Multipart/Formulardaten in Windows Phone untersucht 8 und Windows 8. Durch die Behandlung des Problems leerer Dateibytes und die Bereitstellung alternativer Implementierungen vermittelt dieses Handbuch Entwicklern das Wissen, wie sie Datei-Uploads in ihren Systemen effizient verarbeiten können Anwendungen.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien mithilfe von HTTP POST Multipart/Form-Data in Windows Phone 8 und Windows 8 effektiv auf einen Server hochladen?. 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