Forum » Izdelava spletišč » upload zip datotek (slike)
upload zip datotek (slike)
Veron ::
gre za spletno aplikacijo, kjer uporabnik lahko naloži tudi sliko (ali več slik)
in če je več slik, se ustvari album, vendar je nerodno, da uporabnik nalaga eno po eno sliko (posebaj za tiste, ki imajo švoh upload).
Torej rad bi nekako naredil, da lahko uporabnik neko število slik spakira v ZIP datoteko in nato to zip datoteko uploada nakar strežnik razpakira in naprej opravi svoje (-> naprej ni problem)
Kak predlog?
možnost, da bi uporabnika enostavno usposobil za upload z FTP clientom odpade, ker rabim tudi podatke v mysql bazi (kdo naložil, kdaj,...)
in če je več slik, se ustvari album, vendar je nerodno, da uporabnik nalaga eno po eno sliko (posebaj za tiste, ki imajo švoh upload).
Torej rad bi nekako naredil, da lahko uporabnik neko število slik spakira v ZIP datoteko in nato to zip datoteko uploada nakar strežnik razpakira in naprej opravi svoje (-> naprej ni problem)
Kak predlog?
možnost, da bi uporabnika enostavno usposobil za upload z FTP clientom odpade, ker rabim tudi podatke v mysql bazi (kdo naložil, kdaj,...)
overlord_tm ::
Zuploada na streznik, ti tam odzipas :)
Tudi prek FTP se da. Uporabnik zuploada v njegov direktorij, in potem klikne gumb, naj se slike iz njegovega FTP dir-a uvozijo. Ti poskeniras direktorij za slike in jih nalozis kamorkoli pac rabis. Za cas vzames takrat ko je uporabnik pritisnil tipko za import. Lahko pa tudi preberes cas (mtime), kdaj je bila datoteka nazadnje spremenjena.
Tudi prek FTP se da. Uporabnik zuploada v njegov direktorij, in potem klikne gumb, naj se slike iz njegovega FTP dir-a uvozijo. Ti poskeniras direktorij za slike in jih nalozis kamorkoli pac rabis. Za cas vzames takrat ko je uporabnik pritisnil tipko za import. Lahko pa tudi preberes cas (mtime), kdaj je bila datoteka nazadnje spremenjena.
Veron ::
ja vidim, da sem premalo podatkov napisal, aplikacija je v php napisana, tale link of techfreak-a bo pomagal, da bom lažje poiskal dalje.
ker rabim it potem čez vsako sliko, preverit velikost, po potrebi zmanjšat in kreirat thumbnail. podatke vpisat v mysql bazo, nato pa zadeve naprej že delajo bp
ker rabim it potem čez vsako sliko, preverit velikost, po potrebi zmanjšat in kreirat thumbnail. podatke vpisat v mysql bazo, nato pa zadeve naprej že delajo bp
Tody ::
Veron, moreš paziti tudi na omejitev PHP oz nastavitve v strežniku. Če ti bo kdo nalagal 10 mega slike :)
paco ::
if($_SERVER['REQUEST_METHOD'] == "POST" && $_FILES["datoteka"]["type"] == "application/x-zip") { $ZipArchive = new ZipArchive(); if($ZipArchive->open($_FILES["datoteka"]["tmp_name"])) { for($i = 0; $i < $ZipArchive->numFiles; $i++) { $ImeDatoteke = $ZipArchive->getNameIndex($i); $VsebinaDatoteke = $ZipArchive->getFromIndex($i); if($VsebinaDatoteke !== "") { //obdelaj datoteko } } } $ZipArchive->close(); }
? :)
It iz aj.
Veron ::
Naletel na nov problem in sicer, kako bi preprečil recimo, da bere directorije oz. drugače rečeno, da prebere SAMO datoteke, ki so v korenski mapi zipa?
konrektno gre za upload slik, torej da če je kar koli drugega še v zipu, enostavno ignorira.
potem drugi korak, moram preimenovati imena teh slik in nato imena shranit v sql, nekako mi tale renameIndex ne dela. :-/
trenutna koda:
uglavnem ideja je:
uploada zip, (kolegu na macu stalno nek folder nardi še z __MACOSX imenom ??), torej naj ignorira vse kar ni slika in ni v korenski mapi (vse mape odpadejo, just ignore) in preimenuje slike (tako da odstrani vse nedovoljene znake za filename, kot so #,!, šumniki, najraj še pike, če ni preveč komplikacij)
konrektno gre za upload slik, torej da če je kar koli drugega še v zipu, enostavno ignorira.
potem drugi korak, moram preimenovati imena teh slik in nato imena shranit v sql, nekako mi tale renameIndex ne dela. :-/
trenutna koda:
case 'zip': // unpack zip and upload and add to mysql database $ZipArchive = new ZipArchive(); if($ZipArchive->open($_FILES["file"]["tmp_name"])) { for($i = 0; $i < $ZipArchive->numFiles; $i++) { $ImeDatoteke = $ZipArchive->getNameIndex($i); $VsebinaDatoteke = $ZipArchive->getFromIndex($i); //echo $ImeDatoteke; if($VsebinaDatoteke !== "") { //$slika = rand(5000, 9999).fix_name($ImeDatoteke); $slika = $ImeDatoteke; //$pika = strrpos($slika, '.'); //$title = substr($slika, 0, $pika); // //$ZipArchive->renameIndex($i,$slika); // ne dela ??? // vpiše v bazo mysql_query("INSERT INTO ".TBL_GALLERY." (gallery_id,image_name,image_title) VALUE ('$id','$slika','$title')"); } $ZipArchive->extractTo(ROOT.GALLERY_FOLDER.$id.'/'); } } $ZipArchive->close(); break;
uglavnem ideja je:
uploada zip, (kolegu na macu stalno nek folder nardi še z __MACOSX imenom ??), torej naj ignorira vse kar ni slika in ni v korenski mapi (vse mape odpadejo, just ignore) in preimenuje slike (tako da odstrani vse nedovoljene znake za filename, kot so #,!, šumniki, najraj še pike, če ni preveč komplikacij)
Zgodovina sprememb…
- spremenil: Veron ()
Veron ::
sem zadevo rešil malo drugače (sicer gor sem še našel napako, ker je je extracto v zanki).
naredil sem tako, da prvo vse extracta v začasno mapo, nato prelista mapo, če je datoteka slika (končnica jpeg,jpg,png ali gif - mogoče bolje, da uporabim prav filetype?) jo vzame, preimenuje (odstrani nedovoljene znake) in premakne v pravo mapo.
nato pa celotno začasno mapo pobriše.
sicer nevem kako je hitra/počasna, ampak verjetno ne igra bistvene vloge, ker gre tukaj za max 30-40 slik v zip datoteki (velikost zipa je tudi max 20mb) - oz. je potrebno tukaj še kaj pazit glede velikosti?
naredil sem tako, da prvo vse extracta v začasno mapo, nato prelista mapo, če je datoteka slika (končnica jpeg,jpg,png ali gif - mogoče bolje, da uporabim prav filetype?) jo vzame, preimenuje (odstrani nedovoljene znake) in premakne v pravo mapo.
nato pa celotno začasno mapo pobriše.
sicer nevem kako je hitra/počasna, ampak verjetno ne igra bistvene vloge, ker gre tukaj za max 30-40 slik v zip datoteki (velikost zipa je tudi max 20mb) - oz. je potrebno tukaj še kaj pazit glede velikosti?
DiTi ::
Če se to ne nalaga vsak uporabnik ampak le mogoče par določenih se nimaš kaj bat. seveda potem pobriši tisti začasno mapo.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Autoptimize mi je zrušil stran WP -Kaj sedaj?Oddelek: Izdelava spletišč | 2688 (2005) | Stari89 |
» | Stiskanje datotek (strani: 1 2 )Oddelek: Pomoč in nasveti | 12202 (6412) | Oberyn |
» | enkripcija folderjev z 7zip - AES-256Oddelek: Pomoč in nasveti | 1085 (1022) | Netrunner |
» | .zip datoteka in virusOddelek: Informacijska varnost | 2031 (1827) | hojnikb |
» | Zaklepanje DatotekOddelek: Pomoč in nasveti | 2776 (2571) | DirectZ |