Avatar billede jammerlab Nybegynder
03. marts 2008 - 10:27 Der er 10 kommentarer og
1 løsning

md5 til ident af billede i galleri?

Hej derude... er ved at strikke et galleri sammen... indtil videre finder galleriet billederne ved hjælp af mappe strukturen... men jeg vil gerne havde nogle elementer med ind i galleriet som rating og kommentare til billederne... nu er mit spørgsmål så hvordan for jeg strikket databasen sammen med billederne da de jo bliver uploadet med FTP/web uploade... ved FTP vil jeg jo ikke kunne identificere dem og smide dem i MySQL'en... ideér?
Avatar billede dmdisco Nybegynder
03. marts 2008 - 16:21 #1
ellers skal du lave et script der løber mappen igennem og gemmer filerne i databasen hvis de ikke er deri i forvejen
Avatar billede olebole Juniormester
03. marts 2008 - 16:43 #2
<ole>

Upload billederne over HTTP  ;o)

/mvh
</bole>
Avatar billede jammerlab Nybegynder
03. marts 2008 - 17:01 #3
Hehe som du siger ole så har jeg også tænkt meget på at tvine HTTP upload hehe :) Ville bare lige sende det i bredt forum for at hører hvad der var af ideér og meninger...
Avatar billede dmdisco Nybegynder
03. marts 2008 - 18:10 #4
ved enkelte filer ja så brug upload over http men skal du op med en masse filer (eks. ved opstart af galleri) er det nok lettere at uploade via ftp
Avatar billede jammerlab Nybegynder
03. marts 2008 - 23:49 #5
Lad os bare lukke... bruger HTTP løsningen og så må det tage det tid det nu engang tar :o)
Avatar billede olebole Juniormester
04. marts 2008 - 02:32 #6
Du kunne gøre det, at du med FTP uploader til et bestemt dir 'tmp_uploads'. Derefter kalder du et bestemt PHP-script, som kikker 'tmp_uploads' igennem og flytter hver billedfil til din billedmappe, samtidig med at der oprettes en række i DB'en hvor filnavnet indsættes.

Eventuelt kan der indbygges en rename funktionalitet, hvis en fil i billedmappen har samme filnavn som en fil, der skal flyttes.
Avatar billede jammerlab Nybegynder
05. marts 2008 - 23:49 #7
Støtter mig til HTTP løsningen... det er letteste og mest sandsynlige i mit tilfælde... kan jeg ikke få jer til at smide et svar?
Avatar billede olebole Juniormester
06. marts 2008 - 02:15 #8
Hvis du FTP-uploader til 'tmp_upload' og vil have billederne liggende i 'billeder' - og har en MySQL-tabel med felterne 'upload_stamp', 'pic_path' og 'id' (det sidste med auto increment og indekseret som Primary Key), kan du bruge følgende script:

<?php

$sTmpDir = "tmp_upload/";
$sImgDir = "billeder/";

$aAllowed = array("jpg"=>1, "jpeg"=>1, "gif"=>1, "png"=>1);

function getExt($sFile) {
    $a = explode(".", $sFile);
    return end($a);
}

function checkAllowed($sFile) {
    global $aAllowed;
    $sExt = getExt($sFile);
    if ($aAllowed[ strtolower($sExt) ]) return true;
    return false;
}

if ($hnd=opendir($sTmpDir)) {
    while ( ($sFile=readdir($hnd)) !== false ) {
        if ($sFile=="." || $sFile=="..") continue;
        if (!is_file($sTmpDir.$sFile) || !checkAllowed($file)) continue;
        $sql = "INSERT INTO `tabel_navn` SET `upload_stamp`='".time()."'";
        mysql_query($sql) or die (mysql_error());
        $nId = mysql_insert_id();
        $sNewName = $sImgDir."pic_".$nId.".".getExt($sFile);
        $sql = "UPDATE `tabel_navn` SET `pic_path`='".$sNewName."' WHERE `id`='".$nId."' LIMIT 1";
        mysql_query($sql) or die (mysql_error());
        copy($sTmpDir.$sFile, $sNewName);
        unlink($sTmpDir.$sFile);
    }
    closedir($hnd);
}

?>

Det kopierer alle billeder i mappen 'tmp_upload' over i mappen 'billeder' et ad gangen. Samtidig indsættes en post i DB'en - og filen navngives med id'en fra DB'en på følgende (id=123): 'pic_123.jpg'. Det vil jo altid være et unikt navn  ;o)

Derudover indsættes et timestamp for det øjeblik, filen flyttes - ligesom du kunne have ekstra felter - f.eks. til en kommentar fra dig. Desuden kan du naturligvis have relaterede tabeller til brugerkommentarer, ratings o.lign.

Det kunne måske være en effektiv løsning ved upload af mange filer - men ellers kan du jo altid bruge HTTP  ;o)
Avatar billede olebole Juniormester
06. marts 2008 - 02:17 #9
- som jeg har skrevet scriptet, indsættes forøvrigt 'hele' stien i DB-feltet - ikke bare filnavnet:
    billeder/pic_123.jpg
Avatar billede olebole Juniormester
06. marts 2008 - 02:25 #10
ups ... der var da en fejl ($file -> $sFile)  =)

if (!is_file($sTmpDir.$sFile) || !checkAllowed($sFile)) continue;
Avatar billede jammerlab Nybegynder
06. marts 2008 - 13:21 #11
Cool nok olebole :P jeg prøver lige at se på det... kan bare gøre begge metoder muligt så det ville jo være fint
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester