Hallo miteinander,
ich bin derzeit dabei, in meiner Software meinen Benutzern die Möglichkeit zu bieten, eigene Avatare hochzuladen. Jedoch funktioniert die ganze Geschichte nur so halb.
Ziel ist es, dass die Nutzer jederzeit ihr Avatar mit maximal 1,30 MB in den Formaten JPG und PNG hochladen können.
Nun stoße ich aber seit 2 Tagen auf das Problem, dass der Upload des Bildes nur mehr oder weniger funktioniert, sprich: Mal wird das Bild hochgeladen, mal wiederum nicht.
Nun suche ich darum eure Hilfe, vorab der gesamte Code zum Bild auswählen, Bild-Size prüfen und Uploaden:
Alle Definitionen:
Textbox4 = vollständiger Lokaler Pfad zum Bild
Button3 = Avatar hochladen
Button4 = Bild auswählen
PictureBox14 = GIF um Uploadvorgang darzustellen
Label9 = Benutzername
Alle Imports:
Imports System.Net
Imports System.ComponentModel
Imports System.Windows.Forms
Überprüfen ob Bild auf dem FTP existiert:
Spoiler anzeigen
Funktion um Bildgröße zu ermitteln:
Button4 (Bild auswählen, prüfen ob Datei über 1,30 MB)
Spoiler anzeigen
Button3 (Avatar hochladen):
Spoiler anzeigen
Nun das Problem: In dem Code von Button 3, die Zeile:
Await w.UploadFileTaskAsync("ftp://server.net/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png", TextBox4.Text)
Gibt er mir den Fehler aus:
Ausnahmefehler während einer WebClient-Anforderung
Der Pfad zum Bild existiert, der Link existiert und die Serverdaten sind auch richtig.
Wie schon ganz oben beschrieben funktioniert es nur so halb, damit meine ich, dass er mir mal den Fehler ausgibt, und ein anderes mal wiederum nicht.
Vielleicht habt ihr ja die Lösung, doch ich bin tatsächlich mit meinen Latein am Ende, probiere das mit dem Upload nun schon 2 Tage lang.
LG, beaR
*Topic verschoben*
ich bin derzeit dabei, in meiner Software meinen Benutzern die Möglichkeit zu bieten, eigene Avatare hochzuladen. Jedoch funktioniert die ganze Geschichte nur so halb.
Ziel ist es, dass die Nutzer jederzeit ihr Avatar mit maximal 1,30 MB in den Formaten JPG und PNG hochladen können.
Nun stoße ich aber seit 2 Tagen auf das Problem, dass der Upload des Bildes nur mehr oder weniger funktioniert, sprich: Mal wird das Bild hochgeladen, mal wiederum nicht.
Nun suche ich darum eure Hilfe, vorab der gesamte Code zum Bild auswählen, Bild-Size prüfen und Uploaden:
Alle Definitionen:
Textbox4 = vollständiger Lokaler Pfad zum Bild
Button3 = Avatar hochladen
Button4 = Bild auswählen
PictureBox14 = GIF um Uploadvorgang darzustellen
Label9 = Benutzername
Alle Imports:
Imports System.Net
Imports System.ComponentModel
Imports System.Windows.Forms
Überprüfen ob Bild auf dem FTP existiert:
Quellcode
- Public Function CheckIfFtpFileExistsImage(ByVal fileUri As String) As Boolean
- Dim request As FtpWebRequest = WebRequest.Create(fileUri)
- request.Credentials = New NetworkCredential("SERVER", "PASS")
- request.Method = WebRequestMethods.Ftp.GetFileSize
- Try
- Dim response As FtpWebResponse = request.GetResponse()
- ' THE FILE EXISTS
- Catch ex As WebException
- Dim response As FtpWebResponse = ex.Response
- If FtpStatusCode.ActionNotTakenFileUnavailable = response.StatusCode Then
- ' THE FILE DOES NOT EXIST
- Return False
- End If
- End Try
- Return True
- End Function
Funktion um Bildgröße zu ermitteln:
Button4 (Bild auswählen, prüfen ob Datei über 1,30 MB)
Quellcode
- Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 'Avatar auswählen und Größe checken....
- Using ofd As New OpenFileDialog
- With ofd
- .Title = "Avatar auswählen..."
- .InitialDirectory = (Environment.SpecialFolder.Desktop)
- .Filter = "Nur Bildformat PNG und JPG|*.png;*.jpg;*.jpeg"
- If .ShowDialog() = Windows.Forms.DialogResult.OK Then
- Me.TextBox4.Text = .FileName
- Dim fileSize = getFileSize(TextBox4.Text)
- If fileSize > 1373380L Then
- MsgBox("Avatar: " & TextBox4.Text & " überschreitet die maximale Dateigröße von 1,30 MB", MsgBoxStyle.Critical)
- TextBox4.Clear()
- Else
- 'nothing (Bild kleiner als 1,30 MB)
- End If
- Else : Me.TextBox4.Clear()
- End If
- End With
- End Using
- End Sub
Button3 (Avatar hochladen):
Quellcode
- 'Avatar hochladen...
- Private Async Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
- If TextBox4.Text.Count = 0 Then
- MsgBox("Sie müssen ein Avatar auswählen", MsgBoxStyle.Critical)
- Else
- Select Case MsgBox("Sind Sie sicher, dass Sie das ausgewählte Avatar verwenden wollen?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Bestätigung des folgenden Vorgangs benötigt")
- Case vbYes
- PictureBox14.Visible = True
- Button3.Enabled = False
- Button4.Enabled = False
- Await Task.Delay(200)
- 'Image
- If CheckIfFtpFileExistsImage("ftp://server.net/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png") Then
- Dim cred11 As NetworkCredential = New NetworkCredential("USER", "PASSWORD")
- Dim request11 As FtpWebRequest = FtpWebRequest.Create("ftp://server.net/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png")
- request11.Method = WebRequestMethods.Ftp.DeleteFile
- request11.Credentials = cred11
- Dim response11 As FtpWebResponse = request11.GetResponse()
- response11.Close()
- uploadFile()
- Else
- uploadFile()
- End If
- Case vbNo
- 'nothing
- End Select
- End If
- End Sub
- Private Async Sub uploadFile()
- Try
- Using w As New Net.WebClient
- w.Credentials = New Net.NetworkCredential("USER", "PASSWORD")
- Await w.UploadFileTaskAsync("ftp://server.net/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png", TextBox4.Text)
- UploadFileFinish()
- End Using
- Catch ex As Exception
- PictureBox14.Visible = False
- TextBox4.Clear()
- Button3.Enabled = True
- Button4.Enabled = True
- MessageBox.Show("Es ist ein Fehler beim Hochladen des Avatars aufgetreten: " & vbCrLf & vbCrLf & ex.Message, "Abbruch des Vorgangs", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
- 'MsgBox("Es ist ein Fehler beim Hochladen des Avatars aufgetreten: " & vbCrLf & vbCrLf & ex.Message, MsgBoxStyle.Critical)
- End Try
- End Sub
- Private Sub UploadFileFinish()
- PictureBox14.Visible = False
- Button3.Enabled = True
- Button4.Enabled = True
- TextBox4.Clear()
- If CheckIfFtpFileExistsImage("ftp://server.net/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png") Then
- PictureBox1.ImageLocation = "http://server.net/Benutzerdaten/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png"
- MessageBox.Show("Der ausgewählte Avatar wurde erfolgreich geändert", "Ändern erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information)
- Else
- PictureBox1.Image = My.Resources._180x180_text
- End If
- End Sub
- End Class
Nun das Problem: In dem Code von Button 3, die Zeile:
Await w.UploadFileTaskAsync("ftp://server.net/Benutzersoftware/benutzerinfo/" & Label9.Text & "/pic.png", TextBox4.Text)
Gibt er mir den Fehler aus:
Ausnahmefehler während einer WebClient-Anforderung
Der Pfad zum Bild existiert, der Link existiert und die Serverdaten sind auch richtig.
Wie schon ganz oben beschrieben funktioniert es nur so halb, damit meine ich, dass er mir mal den Fehler ausgibt, und ein anderes mal wiederum nicht.
Vielleicht habt ihr ja die Lösung, doch ich bin tatsächlich mit meinen Latein am Ende, probiere das mit dem Upload nun schon 2 Tage lang.
LG, beaR
*Topic verschoben*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()