Nicon Skrevet 16. oktober 2003 Del Skrevet 16. oktober 2003 Hei Dere. Har nå laget meg en hjemmeside, men så ønsker jeg å ha en "dagens bilde" ramme hvor det kommer et tilfeldig valgt bide. Er ikke så god i php selv så jeg kunne ha trengt litt start hjelp til noe sånt: upload.php: Her bare velger du et bilde på din egen maskin. Bildet lastes så opp til serveren, legger bildet i mappen <bilder>. Scriptet genererer så et tumbnails utifra "hovedbildet". Tumbnailet plasseres i mappen <tumb>. Er ikke sikker på hvordan dette kan gjøres, men kan man ikke bruke ImageMagic eller GD? På index.php ønsker jeg bare en liten kode som kan linkes mot f.eks visbilde.php. På denne siden skal tumbnailet vises, og det skal velges tilfeldig fra tumb mappen. Hvis du klikker på tumbnailet så åpnes hovedbildet i ett nytt vindu. Vil du ikke da slippe at hele hovedbildet loades sammen med index siden? Slik at index siden ikke blir for treg å laste. Har lett igjennom hele databasen til hotscripts.com, men finner ingen ting som likner noe særlig på noe som jeg beskriver her. Det eneste jeg har funnet er galleri scripts, og det trenger jeg ikke... Kom meg forslag om hvordan dette kan løses. Kom også med forslag hvis jeg har skrevet noe feil her.. Lenke til kommentar
Torbjørn Skrevet 17. oktober 2003 Del Skrevet 17. oktober 2003 har ikke gjort bildemanipulering i php, men er det ikke litt kjipt at hvem som helst skal kunne sette inn bilde på siden din? hvis du brukte perl istedet, burde det gå veldig greit med ImageMagick og CGI Lenke til kommentar
Nicon Skrevet 17. oktober 2003 Forfatter Del Skrevet 17. oktober 2003 har ikke gjort bildemanipulering i php, men er det ikke litt kjipt at hvem som helst skal kunne sette inn bilde på siden din? hvis du brukte perl istedet, burde det gå veldig greit med ImageMagick og CGI Tanken var at den upload siden skulle "sjules" slik at vanlig brukere ikke kunne finne den. Dette skal gjøres med et passord script jeg har. Du sa at dette enkelt kunne gjøres i Perl. Kan du poste et forslag i perl? Lenke til kommentar
sven-o Skrevet 17. oktober 2003 Del Skrevet 17. oktober 2003 har ikke gjort bildemanipulering i php, men er det ikke litt kjipt at hvem som helst skal kunne sette inn bilde på siden din? hvis du brukte perl istedet, burde det gå veldig greit med ImageMagick og CGI Ehh...Hæ? Hvorfor skulle dette fungere bedre i perl enn php? Jeg er enig i at php er et barnetv-språk i forhold til perl, men php funker like fint til bildeopplasing som perl. Sikkerheten avhenger ikke av skriptspråket i dette tilfellet. :-? Lenke til kommentar
Torbjørn Skrevet 17. oktober 2003 Del Skrevet 17. oktober 2003 jeg lar min egen preferanse skinne gjennom ja, men jeg sier ikke at det går bedre i perl. skal mekke et forslag. du trenger Image::Magick modulen i perl. Kjører du redhat finnes det som en egen pakke på rhn.redhat.com, hvis ikke, kjør 'perl -MCPAN -e "install Image::Magick" fra kommandolinja. Hvis du ikke har brukt CPAN før, må du gjennom en førstegangskonfigurering. Lenke til kommentar
Torbjørn Skrevet 18. oktober 2003 Del Skrevet 18. oktober 2003 laget en kort demo her: http://sirius.isa-geek.org/~lindahl/upload/ det er ikke tatt med noen sikkerhetshensyn med tanke på overfylte disker, men viser kun funksjonaliteten i en cgi uplad og imagemagick manipulering. Lenke til kommentar
Nicon Skrevet 21. oktober 2003 Forfatter Del Skrevet 21. oktober 2003 Takk skal du ha Torbjørn. Skal teste dette nå, men er litt usikker: Lagrer jeg kildekoden som et .cgi dokument, slenger det i cgi-bin mappen på servere. Så funker det? Hvordan hadde dette blitt i php? Jeg kan veldig lite om perl og cgi, men kan litt om php.. Noen som kan poste et forslag i php? Lenke til kommentar
Torbjørn Skrevet 21. oktober 2003 Del Skrevet 21. oktober 2003 joa, hvis du får lov å kjøre cgi script, og har Image::Magick modulen installert, skal det bare være å dytte fila i cgi-bin katalogen. Tror Image::Magick tingen blir problemet. Jeg ser at noen filer lastes opp av med hele path til fila, men jeg klarer ikke å reprodusere feilen selv har gjort noen endringer, så hvis de som får feil, ville fortsette å prøve, ville det vært fint! Hvis du kjører redhat, har du ImageMagick-perl tilgjengelig som en rpm fra https://rhn.redhat.com Lenke til kommentar
Nicon Skrevet 23. oktober 2003 Forfatter Del Skrevet 23. oktober 2003 Hei Dere. Det viste seg at serveren som hoster mitt domene ikke hadde denne Image::Magick modulen. Jeg fikk heller ikke lov til å kjøre cgi-scripts. Er det noen som kan hjelpe meg med å skrive dette om til php ? Slik scriptet er i dag fungerer det helt optimalt, det er akkruatt de funskjonene jeg trenger. Dessverre får jeg ikke brukt deg Fint om noen kunne poste et forslag til løsning i php... Lenke til kommentar
Torbjørn Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 regnte vel egentlig med det, du får sette opp egen server da men det er sikkert noen som kan skrive et php skript av den saken. Lenke til kommentar
Nicon Skrevet 23. oktober 2003 Forfatter Del Skrevet 23. oktober 2003 ..du får sette opp egen server da Har faktisk egen server, men fikk det ikke til å fungere der heller. Har kanskje noe med at jeg ikke har brukt perl, så jeg har ikke brydd meg med å installere sånne moduler. Men uansett: Takk skal du ha.. Lenke til kommentar
Nicon Skrevet 24. oktober 2003 Forfatter Del Skrevet 24. oktober 2003 #!/usr/bin/perl # enkelt thumbscript # litt overkill å bruke # Image::Magick til dette # # av Torbjø[email protected] :) # use CGI; use Image::Magick; use constant BUFFER_SIZE => 16384; # parametere for scriptet my $thumbdir = "thumbs"; my $pictdir = "pictures"; my $thumb_size = "50x50"; $cgi = new CGI; # viser kildekoden hvis vi ber om det if($ENV{'QUERY_STRING'} eq "SOURCE"){ # det finnes sikkert en modul for # å vise kildekode, men pytt-pytt # sjøl-gjort er vøl-gjort. print $cgi->header; open(SELF,$0)||die("cannot open self"); print "<body bgcolor=black text=white>n"; print "<pre>n"; while(<SELF>){ s/</</g; s/>/>/g; s/(#.*)$/<font color=red>$1</font>/; print; } print "</pre>n"; close FILE; exit; } # sjekker om bruker har sendt data if($ENV{'REQUEST_METHOD'} eq "POST"){ # henter ut filnavnet my $filename = $cgi->param('bilde')||die("no file upload"); # passer på at vi kun får siste delen av filnavnet, minus katalognavn ($filename) = $filename =~ m|?([^]+)$|; # hvis fila eksistere, endrer vi filnavn i wget-stil if(-e "$pictdir/$filename"){ my ($base,$ext) = $filename =~ /(.*).([^.]+)$/; # regexpen over *kan* feile hvis ingen . i filnavn $base = $filename unless $base; # teller opp hvis fila finnes $tall = 1; while(-e "$pictdir/$base.$tall.$ext"){ $tall++; } $filename = "$base.$tall.$ext"; } # file handle til upload fil $fh = $cgi->upload('bilde')||die("failed creating filehandle"); # lager vår lokale fil open(PICT,">$pictdir/$filename")||die("failed to open pict"); # skriver file med innhold fra upload while(read($fh,$buffer, BUFFER_SIZE)){ print PICT $buffer; } # viktig for at ImageMagick kan få tilgang til bildet close PICT; # genererer thumb # lager først vårt image magick objekt $thumb = new Image::Magick; # leser inn fila $thumb->Read("$pictdir/$filename"); $thumb->Resize(geometry => $thumb_size); $thumb->Write("$thumbdir/$filename"); # unngår dobbelposting print $cgi->redirect($ENV{'SCRIPT_NAME'}); exit; } print $cgi->header; print <<EOH; <html> <head> <title>Filopplasting og Manipulering med Image::Magick</title> <style type="text/css"> body { background-color: #ffffee; color: 000000; } img { border: 1pt solid blue; } hr { border-color: black; width: 300; text-align: left;} td { text-align: center; } a { text-decoration: none; color: blue;} form { border: 1pt solid black; padding: 10; width: 500; text-align: center;} </style> </head> <body> <h2>Thumbs med Image::Magick</h2> <form method="POST" enctype="multipart/form-data"> Velg fil: <input type="file" name="bilde"><input type="submit" value="Last Opp"> </form> EOH print "<span style="width:200"></span><a href="?SOURCE">[ Se kildekode ]</a>n"; # vi viser tabell kun hvis det finnes bilder tilgjenegelig if(@files = glob $pictdir."/*"){ # enkel tabell print "<h2>Tilgjengelige Bilder</h2>n<hr>n<table cellspacing="5">n<tr><th>Thumb<th>Filnavn<th>Størrelse<th>Daton"; # sorterer på dato @files = sort { -M $a <=> -M $b } @files; # lister opp filene foreach (@files){ # basename fra filnavn my ($file) = $_ =~ /([^/]+)$/; # skippet denne dersom ikke thumb eksisterer next unless -e "$thumbdir/$file"; # henter ut litt fil info my ($filename,$size) = ($_, -s "$pictdir/$file"); # dato beregning er tungvint my $mod_age = -M "$pictdir/$file"; my ($sec,$min,$hour,$day,$month,$year) = localtime( time() - $mod_age*24*60*60 ); # vanlig epoch korreksjon $year += 1900; $month += 1; my $date = "$hour:$min:$sec $day/$month $year"; print "<tr><td><a href="$filename"><img src="$thumbdir/$file"></a><td>$file<td>$size<td>$daten"; } print "</table>n"; } Kan noen hjelpe meg med å skrive om denne til PHP? Har spurt mange ganger nå, men det er ikke så mange som svarer... Lenke til kommentar
Nicon Skrevet 31. oktober 2003 Forfatter Del Skrevet 31. oktober 2003 Hmm.. Virkelig ingen som kan hjelpe meg med dette? Har jo pastet perl koden her, så det er jo bare å skrive den om til php, eller er det "bare" ? Håper på litt mer hjelp på denne posten.. Lenke til kommentar
Torbjørn Skrevet 31. oktober 2003 Del Skrevet 31. oktober 2003 det meget lett å installere perl moduler... perl -MCPAN -e shell også. etter at setup er ferdig (trenger bare en gang) install Perl::Magick Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå