Ich versuche, eine große GPKG-Datei mithilfe einer WPF-Anwendung an eine API zu senden, stoße jedoch auf die folgende Ausnahme:
Fehler beim Kopieren von Inhalten in einen Stream.
Was ich versucht habe:
Ich habe überprüft, dass die API-URL korrekt ist und für kleinere Dateien funktioniert.
Ich habe sichergestellt, dass der selectedFilePath auf die richtige GPKG-Datei verweist.
Beobachtungen:
Die Ausnahme wird ausgelöst, wenn die Die Dateigröße ist groß (z. B. mehrere GB).
Bei kleineren Dateien funktioniert der Upload wie erwartet.
Fragen:
Warum tritt dieser Fehler bei großen Dateien auf? ?
Wie kann ich dieses Problem beim Hochladen großer Dateien mit HttpClient in einer WPF-Anwendung beheben oder behandeln?
`private async Task UploadFileAsync(string fileType)
// Get the API URL from the TextBox
string apiUrl = ApiUrlTextBox.Text.Trim();
// Validate the URL
if (string.IsNullOrEmpty(apiUrl))
{
MessageBox.Show("Please enter a valid API URL.", "Error", MessageBoxButton.OK);
return;
}
try
{
using (var client = new HttpClient())
{
using (var fileStream = new FileStream(selectedFilePath, FileMode.Open, FileAccess.Read))
{
using (var content = new MultipartFormDataContent())
{
content.Add(new StreamContent(fileStream), "file", Path.GetFileName(selectedFilePath));
// Log the request details
MessageBox.Show($"Uploading to: {apiUrl}\nFile: {Path.GetFileName(selectedFilePath)}", "Upload Info", MessageBoxButton.OK);
// Send the file to the API
var response = await client.PostAsync(apiUrl, content);
// Log the response status code
MessageBox.Show($"Response Status Code: {response.StatusCode}", "Response Info", MessageBoxButton.OK);
// Check if the response is successful
if (response.IsSuccessStatusCode)
{
MessageBox.Show("File uploaded successfully.", "Upload", MessageBoxButton.OK);
}
else
{
string errorMessage = await response.Content.ReadAsStringAsync();
MessageBox.Show($"File upload failed. Status Code: {response.StatusCode}\nError: {errorMessage}", "Error", MessageBoxButton.OK);
}
}
}
}
}
catch (HttpRequestException httpEx)
{
MessageBox.Show($"HTTP error occurred: {httpEx.Message}", "Error", MessageBoxButton.OK);
}
catch (IOException ioEx)
{
MessageBox.Show($"File error occurred: {ioEx.Message}", "Error", MessageBoxButton.OK);
}
catch (Exception ex)
{
MessageBox.Show($"An unexpected error occurred: {ex.Message}", "Error", MessageBoxButton.OK);
}
}
`
Fehler beim Kopieren von Inhalten in einen Stream beim Hochladen einer großen GPKG-Datei in eine API mithilfe einer WPF- ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post