Datein unbenenen, Werte aus SQL DB

Futureman

New Member
Hallo,

Ich habe hier ein problem das ich alleine nicht lösen kann :(
Ich ziehe gerade von einen WBB auf ein VB forum um und es geht um die Dateianhänge.

Die anhänge im WBB forum werden im ordner /attachments/ gespeichert im format "attachment-1" "attachment-2" "attachment-3" usw wichtig dabei ist das die files OHNE dateiendung gespeichert wird.

Jetzt steht in der SQL DB der filname etc wie z.b hier:
attachmentID attachmentName
attachment-1 bildname.jpg
attachment-2 bildname1.bmp
attachment-3 bildname2.png



Ich bräuchte nun ein scribt das mir die dateien ohne endung mit der jeweiligen richtigen endung speichert wie z.b bei "attachment-1" zu "attachment-1.jpg"

Hier noch nen DB bild zum besseren verständniss:
MOD: Anhang.

Ich hoffe es ist verständlich was ich vorhabe :p




Grüße
 

Attachments

  • sqlstruktur.jpg
    sqlstruktur.jpg
    48.8 KB · Views: 153
Last edited by a moderator:
Kannst Du mir vl. nen Dump (die Tabelle mit den Anhängen reicht) schicken?
einfach per Mail an traced@xpear.de

Ahja, und attachmentID ist also der aktuelle Dateiname der Files oder?

Merci!
 
Last edited by a moderator:
Huhu,


Ich glaub das geht nicht ich darf die DB (auch teile davon) nicht aus den Händen geben ;(
Befehl von ganz oben :(

Genau z.b attachement mit der ID: 129 (siehe anhang) heist auf der festplatte "attachment-129" und in der DB steht eben der richtige Name "IMG_0281.jpg".
Und jetzt müsste halt das attachment mit den namen "attachment-129" unbenannt werden in "attachment-129.jpg"
Der echte name des attachment ist egal wichtig ist die endung .jpg.
Ich könnte zwar einfach alle attachments den endung .jpg geben aber da sind ja auch pdf`s bmp etc dabei d.h das manche die falsche endung haben.


Grüße
 
Last edited by a moderator:
Die Tabellen-Struktur reicht schon und ist nicht "geheim" da man sie auch direkt aus dem originalem Sourcepaket extrahieren könnte.
Um es dem Helfer einfacher zu machen, solltest Du ihm wenigstens einen Tabellendump mit Beispieldaten (dürfen gefälscht sein) zukommen lassen, schliesslich arbeitet er in seiner Freizeit kostenlos für Dich. Der Datenschutz ist bei gefakten Beispieldaten ebenfalls erfüllt.
 
Huhu,


Ah ok ich dachte er braucht die orginale.
Wenns nur die Struktur mit paar beispielen sein soll das bekomme ich bis heute abend hin.

Edit: so SQL File hängt an!


Grüße
 

Attachments

Last edited by a moderator:
Hi, danke Joe, darauf wollte ich hinaus ;)

Nur eine Frage ist noch offen: attachmentID ist also der aktuelle Dateiname der Files oder? Danach sollen die Files nicht Filename.xxx sondern attachmentID.xxx heissen?

Grüsse
 
Huhu,


ich hab im vorherigen post von mir einen SQL db angehängt mit beispielen.
Es sin 10 beispiele drin und der name dieser attachment auf der festplatte bei der o.g SQL db ist:
attachment-1
attachment-2
attachment-3
attachment-4
attachment-5
attachment-6
attachment-7
attachment-8
attachment-9
attachment-10
 
Hab Dir ein Python Script angehängt. Du brauchst auf dem Server nur python und python-mysqldb (bei Debian oder Ubuntu: apt-get install python python-mysqldb). Einfach das Script auf den Server laden und in rename_att.py umbenennen, Aufrufen kannst Du es dann mit "python rename_att.py"

Sorry keine grosse Fehlerbehandlung drin und eher pragmatisch programmiert , aber wenn Du die DB-Daten richtig eingibst und das mit den Pfaden passt darf nix schief gehen ;)
Wichtig ist dass der neue Pfad auch vorhanden ist, nimm zum testen einfach ein Verzeichnis unter /tmp oder so.

Wenns Fragen gibt ICQ Nummer hast Du per PM bekommen, oder einfach hier.

Grüße
Basti
 

Attachments

Genial!

Vielen dank hat nach kleineren anpassungen sofort funktioniert.
Genau das ist das was ich brauche....nun kann ich dein scribt auch bissl "analysieren" und für vllt spätere aufgaben ma anpassen.
Wenn ich das scribt so angucke sieht es ganz klar aus aber von alleine hätte ich das nicht hinbekommen :)

Vielen dank echt....
 
Kein Thema! Und, ist ja auch kein Voodoo oder so :D
Wenn Du Dir das mal näher ansehen magst kann ich Python wirklich empfehlen, sehr mächtige Sprache aber gerade für Anfänger schön zu lernen.

Grüsse
 
Huhu,


Jo ich bin gerade am C# aneignen....das funktioniert leider nur wirklich gut unter Windows.
Mein problem bei der ganzen sache was die SQL DB ich wusste einfach nicht wie ich eine verbinung in einen scribt zur SQL db herstelle und da die werte verünftig in ein array speichern kann.

Aber nach deinen scribt wird mir einiges klarer.


Ich kann mich nur nochmals bedanken :)
 
Ein Script schreiben ist da ja schon fast overkill für so eine Einmalgeschichte :)

Ein
select concat('cp /altpfad.../attachment-', attachmentID, ' /neupfad.../', attachmentName) from blabla

per mysql oder phpmyadmin auf die Datenbank absetzen und das Ergebnis als script ausführen geht auch. Geschmackssache...

Aber mehr Service war natürlich Dein Script :)
 
Jo das geht natürlich auch, ist aber etwas schwieriger als in Deinem Beispiel weil er ja als neuen Dateinamen "attachmentID" + Dateiendung aus der zweiten Spalte braucht. Ich weiss nicht ob man in einem SQL Query auch einen String splitten kann? Aber ich lerne immer gerne dazu ;)

Grüsse
 
Stimmt, Du hast ja Prefix attachment- beibehalten, mein Vorschlag hatte den Originalnamen genommen. Mit Stringgefummel wird's dann irgendwann schon unübersichtlich im select.

Kommt halt auch immer darauf an, wo man sich fitter fühlt und wie komplex die Anforderungen genau sind.
 
Back
Top