Namensformat vorhandener Produktbilder umstellen?

  • Derzeit habe ich rund 6500 Produktbilder im Shop. Davon sind ca. 5000 im Namensformat product_id.jpg (noch aus dem am Anfang übernommenen xtc-Datenbestand), die restlichen 1500 habe seitdem aus SEO-Gründen konsequent mit product_name.jpg angelegt.

    Nun möchte ich die 5000 Bilder im Bestand auch auf product_name.jpg umstellen. Das würde zwar "einfach" gehen, indem ich bei der derzeitigen Format-Einstellung "p_name.jpg" jedes einzelne der 5000 Bilder unter Produkte -> Bearbeiten erneut uploade und danach das Imageprocessing durchlaufen lasse. Aber praktisch ist das nicht durchführbar.

    Gibt es nicht einen Weg über ein php-Skript o.ä., um die auf dem Webspace im Ordner images/product_images/original_images liegenden Bilder vom alten Namensformat auf die zugehörigen Produktnamen umzubenennen, wie das sonst beim Upload geschieht? Natürlich müssten in diesem Zuge dann automatisch auch die entsprechenden Datenbankeinträge in den Tabellen "products_description" (für das Hauptbild) und "products_images" (für die Zusatzbilder) aktualisiert werden.

    Wie gesagt, von Hand ein nicht zu bewältigendes Unterfangen. Aber vielleicht hat ein php-Profi unter euch, oder auch der admin oder einer von den cseo-Entwicklern eine Ideee?

  • es gibt für ein connector dass setartikelbild.php vielleicht einer ansatzt für php profi's. die teile draus zu ändern erweiteren

  • ich würde das mit einem shell-script lösen:

    aus einer datenbank-tabelle die zuweisungen alter-bildname -> neuer bildname extrahieren.

    dann jeweils vorher ein "mv" einfügen (in tabellenkalkulation ö.ä.). dabei entstehen zeilen nach folgendem schema:
    1.zelle: mv 2.zelle: alter bildname 3.zelle: neuer bildname (bildnamen wegen google am besten mit bindestrich anstand unterstrich formatieren) etc.

    dann als text abspeichern (dateien-umbennen.sh). darin steht dann
    mv product_1.jpg neuer-bildname1.jpg
    mv product_2.jpg neuer-bildname2.jpg
    etc.pp

    das dann als auf einer unix-/linux-shell in eine ordner-KOPIE(!!) des bild-ordners packen, ausführbar machen (chmod 7xx)
    ./dateien-umbennen.sh
    fertig.

    das geht sicher auch bedeutend eleganter ;)

    die umstellung der dateinamen in der datenbank wird wieder in der tabellenkalkulation vorgenommen und als csv-file importiert.

  • Mit shell habe ich noch kaum Berührung gehabt. Mal sehen, ob ich das hinbekomme.
    Aber vielleicht gehts tatsächlich noch eleganter (idiotensicherer) für solche Laien wie mich?
    Jedenfalls erstmal vieeelen Dank für den Tipp.

  • Hallo ulli,

    ich würde selbst auch mit einem shellscript lösen, geht aber auch mit php.

    Als ansatz Tabelle products abfragen über ein while schleife Bild name abfragen,
    innerhalb der while schleife abfrage ist die Datei (products_id.jpg) da (is_file), ween ja dann umbenennen mit copy products_id.jpg nach products_name.jpg.
    Nach copy update des datensatz, sowie das löschen des alten Bildes mit unlink.

    dasselbe natürlich auch mit der tabelle products_image wiederhohlen.

    Ich hoffe das hilft Dir.

    Gruß Tom