South_Bridge Skrevet 29. oktober 2009 Del Skrevet 29. oktober 2009 Har lagd mitt eget galleri hvor jeg kan laste opp bilder. jeg driver også å lager thumbs. for thumbs er processen nå at jeg laster opp et bilde, så når det er lagra vil scriptet gjøre en meta refresh (echo) til bildethumb.php?fil=FILNAVN.JPEG bildethumb.php tar da GET variablene å finner bildet og resizer det. Problemet her at alt går som det skal. men outputten etter thumb bildet er ferdig er url til bildet (hvit blank side med url, ingenting annet). jeg har prøvd både echo '<meta refresh....' for å redirecte OG header(url) ved slutten av bildethumb.php (etter at thumben er laget) for å komme meg tilbake til adminsiden min. men det går ikke. så jeg lurte på om det går ann å poste GET til bildethumb.php med dataene uten å egentlig åpne den? Lenke til kommentar
TheRealL Skrevet 29. oktober 2009 Del Skrevet 29. oktober 2009 Mkay, var kanskje jeg som ikke forsto formuleringen men: Du har et script som forandrer stølelsen på et bilde i GET variablen? Isåfall så må vel dette programmet sette Header Output til Image/Gif, Image/Jpg eller Image/PNG og da kan du ikke ha noe annet en GD programmet i bildethumb.php?fil=filnavn.jpeg også må du slenge inn feks. <img src="bildethumb.php?fil=filnavn.jpeg" /> På en annen side som har Header Output som vanlig HTML og ikke som bilde. AFAIK så kan man ikke bruke HTML og GD i samme fil. Lenke til kommentar
Jann - Ove Skrevet 29. oktober 2009 Del Skrevet 29. oktober 2009 Bruk header-redirect. http://en.wikipedia.org/wiki/HTTP_302 Meta refresh hører til forrige tiår, og er ren idioti idag. Best å venne seg av den vanen først som sist. Med en gang du bruker meta refresh i en side som skal indekseres av moderne søkemotorer blir du straffet. Lenke til kommentar
South_Bridge Skrevet 29. oktober 2009 Forfatter Del Skrevet 29. oktober 2009 kanskje noe kronglete forklart. jeg har 2 filer administrator.php - siden inneholder html form for å motta filer fra bruker(enkeltvist atm). hmtl form poster til seg selv(administrator.php). jeg kjører da en <?php if( isset($_POST['submit'] ... på toppen av administrator.php for å fange opp html forms som er på den siden. den nevte if funksjonen henter opp om jeg ønsker å adde et nytt bilde og lagrer valgte bilde på serveren. SÅ (helt på slutten, når bildet i lagret i nevnte if test) kjører jeg en meta redirect mot bildethumb.php og forteller hvor den finner bildet med GET variabler. Det blir seende noe sånn ut: bildethumb.php?fil=FILENAME.JPG. FORID: bildethumb.php ser noe sånn ut: <?php // The file $filename = $_GET['filename']; // Set a maximum height and width $width = 200; $height = 200; // Content type header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); $ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output $thumbfilename = "thumb_". $_GET['filename']; imagejpeg($image_p, $thumbfilename, 60); imagedestroy($image_p); når jeg da redirecter fra administrator.php får jeg da opp en blank side med "http://url.to/the/image.jpg" (ish ). jeg har som sagt prøvd både header og echo meta på slutten av thumbbilde.php Lenke til kommentar
footnote Skrevet 29. oktober 2009 Del Skrevet 29. oktober 2009 slik jeg ser det ønsker du ikke å vise bildet med bildethumb.php, noe du heller ikke gjør. Du skrive bildet til en fil. Da er det feil å bruke: header('Content-Type: image/jpeg'); browseren forventer da at dataene ska vises som et bilde. Det surmoth foreslår virket fornuftig: istedet for å gjøre en en GET til bildethumb.php, kan du heller kjøre scriptet bildethumb.php ved å inkludere thumbnail bildet på en resultat side (denne kan være administrator.php siden din) når filen i <img> er et skript blir dette kjørt uten at du klikker på det, og det var jo egentlig det du spurte om. Bildet vil da vises når det er ferdig, men skriptet kjører i alle tilfeller, og du slipper en redirekt Lenke til kommentar
PlastBox Skrevet 30. oktober 2009 Del Skrevet 30. oktober 2009 (endret) Jeg forstår hva du mener, South_Bridge, men ikke hvorfor du gjør det sånn. Hvorfor ikke bare generere thumbnail i samme kodeblokk som tar imot den opplastede filen? Virker lite fornuftig å delegere denne jobben til en egen, separat fil. Når det er sagt kan du kalle bildethumb.php med funksjonene file() eller file_get_contents(). F.eks.: $data = file_get_contents('http://dittdomene.no/bildethumb.php?filename='.$filename); Det sendes da et separat http-request til webserveren som kjører bildethumb.php uten at du på noen måte blir redirected bort fra siden du er på. Et annet alternativ er å avslutte bildethumb.php med.. header('Location: index.php'); //eller hvilken som helst annen fil du skal tilbake til ..dog dette virker knotete. Jeg vil uansett anbefale å putte koden for thumbnail-generering i fila som tar imot og lagrer det opplastede bildet. Er ingenting som stopper deg fra å gjøre dette, og det er utvilsomt den reneste, peneste måten å gjøre det på. Endret 30. oktober 2009 av PlastBox Lenke til kommentar
South_Bridge Skrevet 30. oktober 2009 Forfatter Del Skrevet 30. oktober 2009 (endret) Jeg forstår hva du mener, South_Bridge, men ikke hvorfor du gjør det sånn. Hvorfor ikke bare generere thumbnail i samme kodeblokk som tar imot den opplastede filen? Virker lite fornuftig å delegere denne jobben til en egen, separat fil. Når det er sagt kan du kalle bildethumb.php med funksjonene file() eller file_get_contents(). F.eks.: $data = file_get_contents('http://dittdomene.no/bildethumb.php?filename='.$filename);<!--c2--></div><!--ec2--> Det sendes da et separat http-request til webserveren som kjører bildethumb.php uten at du på noen måte blir redirected bort fra siden du er på. Et annet alternativ er å avslutte bildethumb.php med.. <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->header('Location: index.php'); //eller hvilken som helst annen fil du skal tilbake til ..dog dette virker knotete. Jeg vil uansett anbefale å putte koden for thumbnail-generering i fila som tar imot og lagrer det opplastede bildet. Er ingenting som stopper deg fra å gjøre dette, og det er utvilsomt den reneste, peneste måten å gjøre det på. file_get_contents virker lovende. skal prøve den når jeg kommer hjem. Grunnne til at jeg gjør det sånn jeg har gjort det(og det er sikkert knotet og ikke oppdatert til dagens standard på hva god kode er) er fordi jeg har som sagt admin.php som inneholder html form for å laste opp bilde(gui). Den poster da til seg selv. Denne admin.php er igjen en del av en index.php?side=adminside struktur, noe som gjør at html header allerede er sendt lenge før den(index.php) da kommer til admin.php og jeg får da ikke bruke snaxy header('Location:...'); (mener jeg på da man kun kan bruke header når ingen HTML er sendt) altså, i index.php: ... $side = $_GET['side']; if( $side == adminside ) include('admin.php') ... og før dette har du jo session_start og litt html for includering av css og slikt. $_GET behandlinga mi er plassert i body til index.php. men som sagt virker file_get_contents lovende Endret 30. oktober 2009 av South_Bridge 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å