Bild laden, in bestimmten Ordner speichern und Bildpfad in DB speichern

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Ben1988.

    Bild laden, in bestimmten Ordner speichern und Bildpfad in DB speichern

    Hallo,
    ich habe in Internet schon sehr viel darüber gesucht und gelesen, nur hilft mir alles nichts bei meinem Problem.

    Wie oben schon beschrieben soll eine Bilddatei per Buttonclick in eine Picturebox geladen werden. Wenn ich nun einen weiteren Button klicke soll - neben anderen Speicherungsprozzessen - das Bild als jpg in einem bestimmten Ordner abgespeichert werden und der Bildpfad soll dann in der Datenbank im selben Datensatz, wie der Rest, der eingegeben wurde abgespeichert werden.

    Geht das mit Visual Basic 2008 und einer Access 2003 Datenbank?

    Ginge es vll sogar, dass das Programm, wenn es kompiliert ist bei der ersten Speicherung eines Datensatzes einen Ordner anlegt, wo die Bilddateien gespeichert werden?

    Ich wäre für eure Hilfe sehr dankbar. Für Quellcodes bin ich auch sehr dankbar, aber versucht mir bitte ersteinmal so auf die Sprünge zu helfen...

    Grüße, Ben
    Ja das geht.

    Beim Speichern des Bildes liest Du den Speicherpfad aus und speicherst diesen als Text in der DB.

    Hier der Syntax um einen Ordner anzulegen: Directory.CreateDirectory("was auch immer")
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hi,
    vielen dank für den Code. kannst du mir denn auch sagen, wie ich zum Beispiel die Bilddatei, die ich geladen habe, in dem Ordner abspeichere?

    (PS: Wie man den Filename in der DB speichert habe ich nun raus)

    Grüße, ben
    Hi,
    Wie meinst du das "wie kommen sie in das Programm"?

    Ich lade sie derzeit nur per Buttonclick in die Picturebox und speichere dann den Dateipfad in der DB. Ich möchte aber, dass die Bilddatei, die in die Picturebox geladen wird per weiteren Buttonclick in einem bestimmten Ordner gespeichert wird und das der "neue" Dateipfad abgespeichert wird.

    Ich hoffe, das ist so verständlich...

    Grüße, Ben
    Da Du ja den alten Speicherort kennst, kopierst Du einfach die Datei vom alten in den neuen Speicherort. GGf. löschst Du die Datei nach dem kopieren.
    Objekte die Du evtl. benötigst
    File.Copy, Kill(Datei), SaveFileDialog, OpenFileDialog, FolderBrowserDialog
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hallo,
    ich habe da doch noch eine Frage, und zwar, möchte ich - bevor der ordner angelegt wird - prüfen, ob er existiert.

    Ich habe gedacht, dass das mit .directoryexists funktioniert. Stimmt das und wenn ja, was für einen Boolean-Wert gibt mir das aus, wenn der Ordner nicht existiert? 0?

    Oder muss ich das zuvor definieren? Dann wüsste ich nur nicht wie..


    Grüße, Ben
    Hi,
    also ich habe das nun als Code und ich bekomme nun immer den fehler, dass der Pfad oder ein Teil nicht gefunden worde ist:

    VB.NET-Quellcode

    1. If My.Computer.FileSystem.DirectoryExists("C:\Ordner\") = False Then
    2. My.Computer.FileSystem.CreateDirectory("C:\Ordner\")
    3. End If
    4. FileCopy(Me.OpenPicFileDialog.FileName, "C:\Ordner\")
    5. My.Computer.FileSystem.DeleteFile(Me.OpenPicFileDialog.FileName)
    6. My.Computer.FileSystem.RenameFile(Me.OpenPicFileDialog.FileName, "C:\Ordner\" + "id_ans")


    id_ans ist dabei einfach ein String.

    Was habe ich falsch gemacht?
    mhhh,
    das Einzige, was mir einfallen würde, ist, dass ich das ja schon in Zeile 6 gelöscht habe, was ich in Zeile 7 umbenennen will...

    Also tausche ich Zeile 6 mit 7.

    Leider geht es immer noch nicht, da der Felher schon in Zeile 5 zu sein scheint ("Ein Teil des Pfades "C:\Ordner" konnte nicht gefunden werden.")

    Ich habe ehrlich gesagt keine Ahnung, was ich ändern muss... Ich habe auch nichts mir ausprobieren hinbekommen..

    Grüße, Ben

    PS: Tut mir leid, wenn ich soo viel Frage, weil ich es nicht hinbekomme...
    Hi,
    vielen Dank für deine Hilfe. mein Code ist nun (ohne Löschung des ursprünglichen Files):

    SQL-Abfrage

    1. If My.Computer.FileSystem.DirectoryExists("C:\Ornder") = False Then
    2. My.Computer.FileSystem.CreateDirectory("C:\Ordner")
    3. End If
    4. FileCopy(Me.OpenPicFileDialog.FileName, "C:\Ordner" + id_ans + ".jpg")


    Und er funktioniert.