3Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
946
946
EMPFEHLEN
-
Hallo Zusammen

Vielleicht könnt Ihr mir ja helfen.
Ich habe ein Programm geschrieben, dass eine gescannte Datei erstmal lokal speichert und dann den Windowsopenfile-Dialog öffnet (gleich im Ordner in dem die Datei gespeichert wurde). Die Dateien die gescannt werden, erhalten den namen: "img_"aktuelle_Uhrzeit".jpg". Wenn eine Datei mit dem selben Namen bereits in dem Ordner ist, wird die Datei "img_"aktuelle_Uhrzeit_1".jpg" benannt. Wird eine Datei ausgewählt, wird die Auswahl bestätigt und im Anschluss die Datei hochgeladen. Ist dort eine Datei bereits vorhanden, überschreibt der FTP-Server einfach die Datei und die "alte"-Datei ist weg...!
Wie kann ich das umgehen, dass der FTP-Server mir die Datei überschreibt?
-
Hi
und Willkommen bei tutorials.de
Zuerst eben abfragen, ob es eine Datei mit dem Namen gibt.
Wirklich sicher ist das aber auch nicht.
Wenn die andere Datei gerade zwischen Abfrage und eigenem Upload kommt...
FTP ist für sowas ungeeignet.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Hey danke dir Sheel für die schnelle Antwort,
die Abfrage pb die Datei bereits vorhanden ist habe ich schon. Ich zeig dir mal was ich bereits so alles habe, vllt kannst du dir dann ein besseres Bild machen.
Code :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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
Imports System.Net Imports System.IO.Directory Imports System.Net.WebRequestMethods Imports System.Drawing.Printing Imports System.Globalization Imports System.IO Imports System.Runtime.InteropServices Imports Microsoft.Win32 Public Class Scanbutton 'Deklaration Dim ziel As String Dim user As String Dim pwd As String Dim datum As String Dim ofd As New OpenFileDialog Dim sfd As New SaveFileDialog Dim fso As System.Object Dim imagepfad As String Dim dialog As New WIA.CommonDialog Dim image As WIA.ImageFile = Nothing Dim i As String Private Declare Function GetTickCount Lib "kernel32" () As Long Private Const ConnectTimeOut = 30 Private Sub Scanbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Zugangsdaten user = ("Benutzer") pwd = ("Passwort") i = 0 fso = New Object 'Datum Formatierung datum = FormatDateTime(Now, DateFormat.ShortTime) datum = Replace(datum, " ", "_") ' leerzeichen durch unterstrich ersetzen datum = Replace(datum, ".", "") ' Punkte entfernen datum = Replace(datum, ":", "") ' Doppelpunkte entfernen MsgBox("Legen Sie ein Dokument in Ihren Scanner.") 'Hierbei wird die Windows GUI aufgerufen die zum Scannen verwendet werden kann. Try image = dialog.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType, , , , False, ) Catch ex As Exception MsgBox("Ein Fehler ist aufgetreten! Überprüfen Sie ob das Gerät Eingeschaltet und angeschlossen ist." & Environment.NewLine & Environment.NewLine & ex.Message) End End Try If Not image Is Nothing Then imagepfad = ("C:\Scanbilder\") If FileExists(imagepfad + "img_" + datum + ".jpg") Then i = i + 1 image.SaveFile(imagepfad + "img_" + datum + "_" + i + ".jpg") Else image.SaveFile(imagepfad + "img_" + datum + ".jpg") End If Else MsgBox("Es wurde kein Bild erfasst!", MsgBoxStyle.Information, "Information") End End If ofd.InitialDirectory = "C:\Scanbilder\" ofd.Filter = "Gescannte Dokumente (*.jpg)|*.jpg" ofd.Title = "Datei zum Öffnen auswählen" If ofd.ShowDialog() = DialogResult.OK Then MsgBox("Datei wurde ausgewählt.") Else MsgBox("Abbruch durch User.") End End If Dim webclient As New Net.WebClient webclient.Credentials = New Net.NetworkCredential(user, pwd) ziel = ("FTPServer") Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create(ziel) request.Method = Net.WebRequestMethods.Ftp.ListDirectory request.Credentials = New Net.NetworkCredential(user, pwd) Try request.GetResponse() MsgBox("Connected") Catch ex As Exception MsgBox("Kein Connect") Close() End Try My.Computer.Network.DownloadFile(ofd.FileName, ofd.SafeFileName, user, pwd) If ftpfileExists(ziel) = True Then ziel = ("FTPServer/" + ofd.SafeFileName) My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500) MsgBox("Erfolgreiches Hochladen!") End Else MsgBox("Der Zielordner zum Einfügen der gescannten Dokumente, ist nicht verfügbar.") MsgBox("Überprüfen Sie ob der Zielordner vorhanden ist.") End End If End Sub '######################################################################################################################################## ' Funktion zum überprüfen eines Ordners '######################################################################################################################################## Public Function DirExists(ByVal OrigFolder As String) Dim fs fs = CreateObject("Scripting.FileSystemObject") DirExists = fs.folderexists(OrigFolder) End Function '######################################################################################################################################## ' Funktion zum überprüfen einer Datei '######################################################################################################################################## Private Function FileExists(ByVal FileName As String) As Boolean On Error Resume Next FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume)) On Error GoTo 0 End Function '######################################################################################################################################## ' Funktion zum überprüfen einer Datei auf dem FTP-Server '######################################################################################################################################## Private Function ftpfileExists(ByVal FileName As String) If (My.Computer.Network.IsAvailable = True) Then MsgBox("Hat geklappt") Return (True) End Else MsgBox("Hat nicht geklappt") Return (False) End End If End Function '######################################################################################################################################## ' Button Upload um Scanvorgang zu umgehen '######################################################################################################################################## Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles einfacher_upload.Click MsgBox("Wählen Sie eine Datei aus, die Sie hochladen möchten.") upload() End Sub '######################################################################################################################################## ' Funktion Upload einer Datei für den Button Upload '######################################################################################################################################## Private Function upload() As Action ofd.InitialDirectory = "C:\Scanbilder\" ofd.Filter = "Gescannte Dokumente (*.jpg)|*.jpg" ofd.Title = "Datei zum Öffnen auswählen" If ofd.ShowDialog() = DialogResult.OK Then MsgBox("Datei wurde ausgewählt.") Else MsgBox("Abbruch durch User.") End End If ziel = ("FTPServer/ftpsonstige/Scanbilder/") If ftpfileExists(ziel) = True Then ziel = ("FTPServer/ftpsonstige/Scanbilder/" + ofd.SafeFileName) My.Computer.Network.UploadFile(ofd.FileName, ziel, user, pwd, True, 500) MsgBox("Erfolgreiches Hochladen!") End Else MsgBox("Der Zielordner zum Einfügen der gescannten Dokumente, ist nicht verfügbar.") MsgBox("Überprüfen Sie ob der Zielordner vorhanden ist.") End End If End Function
Hilft dir das weiter?
-
22.12.11 12:47 #4
Moin,
meinst Du die Funktion "ftpfileExists"
Was sollte die denn prüfen ?
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Hallo Freak,
naja ftpfileexists, sollte die Datei auf dem FTP-Server überprüfen aber da stimmt noch was nicht. Ich hatte eigentlich vor auf den FTP Server einen Zugriff zu erreichen aber irgendwie bin ich daran vorbeigekommen und dennoch funktioniert alles
Bist du der Meinung ich kann das anders gestalten?
-
22.12.11 13:07 #6
Moin,
Nun ja, was Du dort prüfst, ist doch wohl nur dies her, oder ?
http://msdn.microsoft.com/de-de/libr...=vs.90%29.aspx
Du übergibst zwar 'nen Dateinamen an die Funktion, machst da aber konkret nichts mit !!
Du solltest versuchen die Datei zu lesen, um zu schauen, ob sie vorhanden ist ....
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Hey,
uff... :O da schauste mal was alles an einem vorbei geht... mist... Sollte ich aber FileExists verwenden, dann geht das ja nicht da die Funktion nur für Lokale Überprüfung gilt.
Wenn ich es mit einem Download versuchen sollte, dann TRUE zurück bekomme, sollte ich eigentlich auch eine Art überprüfung haben nicht wahr
-
Noch einmal: Bei FTP kannst du dir nicht sicher sein, dass nichts verloren geht.
Wenn das wirklich immer 100% sicher sein soll, kann man FTP vergessen.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Danke für die Info aber ich weiß in dem Falle ist FTP das sicherste da:
1. das FTP direkt am VPN ist
2. File Transport Protocoll sagt doch alles oder?
3. HTML / PHP usw... ist nicht gewünscht deswegen muss es FTP sein.
Eine PHP Variante habe ich bereits gemacht ist aber nicht erwünscht
-
22.12.11 14:16 #10
Moin,
hier mal eine nette Übersicht der verfügbaren FTP-Befehle:
http://www.informatik.fh-luebeck.de/...en/node44.html
Mehr ist wirklich nicht ...
Du könntest natürlich neben dem Download versuchen, mit DIR das Verzeichnis aufzulisten und dann darin den Dateinamen zu suchen (ist aber bei vielen Einträgen auch nicht so wirklich lustig).
Gibt es denn nur einen Client, der diese Dateien speichern will oder mehrere? Weil: je mehr, desto unsicherer wird es, wie Sheel ja schon schrieb!
Oder bastle Dir eindeutigere Dateinamen - etwa Uhrzeit mit Hunderstel etc. !
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Ich danke Euch beiden!
Zum ersten mal erhalte ich ein vernünftiges Freedback mit Erklärung!
Ich werde euch auf dem laufenden halten und am Ende ein Tut schreiben wie das ganze geht mit FTP Scan und Upload
erstmal bis auf weiteres würde ich sagen:
Close
dank Eurer Hilfe!!
Danke
Ähnliche Themen
-
Welche Programmiersprache kann mit SVG-Dateien umgehen?
Von Alice im Forum Coders TalkAntworten: 31Letzter Beitrag: 31.12.10, 18:40 -
Style Dateien überschreiben
Von Dark Ranger im Forum CSSAntworten: 3Letzter Beitrag: 18.06.08, 20:57 -
xml-dateien / bilder - cache umgehen
Von harrry im Forum Flash PlattformAntworten: 6Letzter Beitrag: 07.08.06, 17:47 -
Überschreiben von Dateien per vsftpd
Von Riemenschneider im Forum Linux & UnixAntworten: 5Letzter Beitrag: 02.08.04, 01:46 -
FTP-Download : Dateien nicht überschreiben
Von Bombi im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 15.04.03, 02:55





Zitieren


Login





