Aloin tehdä kuten viisaalta tuntui. Talletan metatiedot SQL-kantaan ja tiedostot hakemistoon. Nyt havaitsin "yllättäen", että on ISO joukko kuvia, joiden nimissä on ääkkösiä, ja hyvä niin (Vääräjoki ei ole sama kuin Vaarajoki). Mikäköhän olisi viisain ratkaisu?
mercier kirjoitti:
Mikäköhän olisi viisain ratkaisu?
Antaa niitten ääkkösten olla?
mercier kirjoitti:
Mikäköhän olisi viisain ratkaisu?
Mihin ongelmaan? Jos ei ole ongelmaa, ei tarvita ratkaisuakaan.
Talletin joukon kuvia php-hässäkällä. Ongelmaksi tuli ääkkösiä nimissään käyttävät kuvatiedostot, joita en saanut avattua enkä poistettua palvelimelta muuten kuin poistamalla koko hakemiston. Talletettaessa ääkkösistä tuli erikoismerkkejä, jotka ongelman aiheuttivat. Ilmeisesti tämä on joku asetusjuttu. Olisi hienoa, jos kuvat saisi talletettua niiden nykyisillä nimillä. Auttaisiko se jotain, jos php:n tekee utf-8-muodossa?
Jos haluat välttämättä siivota tiedostojen nimiä, niin muokkaappa kuvien nimistä sitten ääkköset pois, korvaa ne haluamillasi merkeillä, ja lisää alkuperäisen tiedoston nimen vaikkapa md5-hashin 8 ekaa merkkiä tiedoston nimen perään.
esim.
vaarajoki_4dd17527.png
Nimenomaan en haluaisi siivota ja muuttaa tiedostojen nimiä, siksikin kun niitä on paljon (vaikka kone tekisi). Ne on nimetty kyllä yksilöivästi, mutta nimessä on "metatietoa" eli paikan nimi.
mercier kirjoitti:
Ongelmaksi tuli ääkkösiä nimissään käyttävät kuvatiedostot, joita en saanut avattua enkä poistettua palvelimelta muuten kuin poistamalla koko hakemiston.
Todella erikoista. Ei minulla ole koskaan ollut minkäänlaisia ongelmia tiedoston poistossa nimen takia. Et kertonut mitä ohjelmaa käyttäen (shellissä vai esim. FTP-yhteydellä) yritit niitä availla tai poistaa, mutta lähinnä tulee mieleen että käyttämäsi ohjelma (esim. FTP) on vaan huono.
Jos ongelman aiheuttaisi merkit, joita levyjärjestelmä ei tue, niin silloin ongelman pitäisi tulla vastaan jo tiedoston luonnissa, jolloin tietenkään avaamista tai poistamista ei pääsisi edes yrittämään.
Tämä on jutska jolla kuva menee hyvin eikä erottele ääkkösiä:
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
Tiedoston nimeen ilmestyy ä-kirjaimesta salmiakki, joka näkyy cPanelilla kurkittaessa, mutta se salmiakki häiriköi sitten niin, että kuvalle ei voi tehdä mitään, ei edes nimetä cPanelilla uudelleen.
Eli cPanel on buginen. Hanki toimiva versio cPanelista tai korjaa cPanelin bugi. Tai älä käytä cPanelia. (En itse asiassa ymmärrä miksi sitä pitäisi käyttää, jos olet tekemässä omaa softaa kuvien hallintaan)
Saatanpa tehdä niin, että laitan kuvat vain automaattisesti juokseville numeroille ja puran tuon nimessä olevan datan metatietoihin... Kuvia lisää useampi henkilö, mutta kaikilla ei ole muuten palvelimen ylläpito-oikeuksia. Kuullostaako mahdolliselta, onko hyviä koodivinkkejä?
miksi juokseva numero? Onko sille oikeasti tarvetta? Mikset vain siivoa epäkelvot merkit pois siirrettäessä ja liitä nimeen esim. pienehkö aikaleima päällekkäisyyksien takia?
Numerointi on juuri sen kuuloinen, että jossain vaiheessa kuvat siirtyvät päällekkäin kun kaksi tai useampi henkilö siirtää samaan aikaan kuvia.
Jos tietokanta on joka tapauksessa käytössä, nimeen on käytännöllistä laittaa se tietokantaan automaattisesti generoitu juokseva numero. Jos erikoismerkeistä on vaivaa, yksinkertaisinta on muuttaa ääkköset vastaaviksi aakkosiksi ja heittää loput erikoismerkit vaikka preg_replace-funktiolla kokonaan pois.
Aihe on jo aika vanha, joten et voi enää vastata siihen.