20. januar 2009 - 14:57
Der er
50 kommentarer og 1 løsning
upload billede giver problemmer
Jeg har leget lidt med noget upload af billeder, i starten vikede det også fint men da jeg så fik tilføjet en hel del ekstra så virkede det ikke. Jeg for fejlen "Der er sket en fejl" så det er denne funktion der ikke virker tilsyneladene if (move_uploaded_file($_FILES['minfil']['tmp_name'], "$bufdestination")) Hele billededellen ses her... <?php $sti = "Billeder/Intet-billede.jpg"; $filnavn = "Intet-billede.jpg"; if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { //Henter billede converter require_once('MySQL/Plugin/class.imagemake_MySQL.php'); //ser efter om filnavnet allerede eksistere. $nr = "0"; $stop = "0"; while($stop == 1) { $nr++; $filnavn = "$regs[1]$nr_thumb.$regs[2]"; if (is_file("Billeder/$realfilnavn")) { //forsæt } else { $stop = "1"; //Indstilinger $midlertidig = "$regs[1]$nrmidlertidig.$regs[2]"; $realfilnavn = "$regs[1]$nr_real.$regs[2]"; $thumbfilnavn = "$regs[1]$nr_thumb.$regs[2]"; } } $destination = "Billeder/"; //Andet $bufdestination = "$destination$midlertidig"; $thumbdestination = "$destination$thumbfilnavn"; $realdestination = "$destination$realfilnavn"; //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye if (move_uploaded_file($_FILES['minfil']['tmp_name'], "$bufdestination")) { echo '<div style="text-align:left">Filen: '.$filnavn.' blevet uploadet</div>'; //< $info = getimagesize("$bufdestination"); $infobredde = $info[0]; $infohojde = $info[1]; /******************* /thumb udregner / *******************/ if ($infohojde < $infobredde) { $thumpforhold = "$infobredde / 280"; $thumprelativhojde = "$infohojde / $thumpforhold"; $thumpbredde = "280"; $thumphojde = round($thumprelativhojde); } elseif ($infobredde < $infohojde) { $thumpforhold = "$infohojde / 280"; $thumprelativbredde = "$infobredde / $thumpforhold"; $thumphojde = "280"; $thumpbredde = round($thumprelativbredde); } if ($infobredde == $infohojde) { $thumphojde = "280"; $thumpbredde = "280"; } /******************* /real udregner / *******************/ if ($infohojde < $infobredde) { $realforhold = "$infobredde / 280"; $realrelativhojde = "$infohojde / $realforhold"; $realbredde = "280"; $realhojde = round($realrelativhojde); } elseif ($infobredde < $infohojde) { $realforhold = "$infohojde / 280"; $realrelativbredde = "$infobredde / $realforhold"; $realhojde = "280"; $realbredde = round($realrelativbredde); } if ($infobredde == $infohojde) { $realhojde = "280"; $realbredde = "280"; } /******************* /Gemmer thumb img / *******************/ try { $image = new image('.$bufdestination.'); $image->quality(70); $image->resize($thumpbredde,$thumphojde); $image->watermark('img/vandmaerke.png', 'RIGHT','BOTTOM'); $image->save($thumbdestination); } catch(Exception $e) { echo 'Exception Caught : <b >' . $e->getMessage() . '</b>'; } /******************* /Gemmer real img / *******************/ try { $image = new image('.$bufdestination.'); $image->quality(100); $image->resize($realbredde,$realhojde); $image->watermark('img/vandmaerke.png', 'RIGHT','BOTTOM'); $image->save($realdestination); } catch(Exception $e) { echo 'Exception Caught : <b >' . $e->getMessage() . '</b>'; } /******************* /Sletter buf fil / *******************/ if (is_file("$bufdestination")) //Tjek om filen findes { unlink("$bufdestination"); //Sletter fillen } } else { echo '<div style="text-align:left">Der er sket en fejl</div>'; } } else { echo '<div style="text-align:left">Intet billede uploaded,<br /> bruger standart billede.</div>'; } } else { if (isset($_POST['billede'])) { $sti = $_POST['billede']; echo '<div style="text-align:left">A-Mweb.dk har forsøgt at genskabe det sidste uploaded billede.</div>'; } else { echo '<div style="text-align:left">Der er sandsynligvis ikke<br />uploaded noget billede,<br /> standart billede vil blive brugt.<br /></div>'; } } echo '<div style="text-align:right"><img src="'.$thumbdestination.'" height="280" width="280" alt="billede" /></div>'; ?>
Annonceindlæg fra Kommando
20. januar 2009 - 15:01
#1
PS: Jeg har sat mappen Billeder/ til 777 retigheder
20. januar 2009 - 16:54
#2
Prøv at udskriv: $bufdestination Indeholder den det korrekte ? Du bør evt. rette: if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? til: if(is_uploaded_file($_FILES['minfil']['tmp_name'])) //Har brugeren forsøgt at uploade noget?
20. januar 2009 - 17:43
#3
Jeg har prøvet at insætte denne, men den skiver ingen gang noget ud til mig... <?php echo 'filnavn: '.$filnavn.'<br />'; echo 'midlertidig: '.$midlertidig.'<br />'; echo 'realfilnavn: '.$realfilnavn.'<br />'; echo 'thumbfilnavn: '.$thumbfilnavn.'<br />'; echo 'bufdestination: '.$bufdestination.'<br />'; echo 'thumbdestination: '.$thumbdestination.'<br />'; echo 'realdestination: '.$realdestination.'<br />'; ?> Men i $midlertidig = "$regs[1]$nrmidlertidig.$regs[2]"; $realfilnavn = "$regs[1]$nr_real.$regs[2]"; thumbfilnavn = "$regs[1]$nr_thumb.$regs[2]"; Er der en fejl $midlertidig = "$regs[1]$nrmidlertidig.$regs[2]"; Skal hede $midlertidig = "$regs[1] og $nr og midlertidig. og $regs[2]"; hvordan skiver man det.
20. januar 2009 - 20:46
#4
Prøv at udskriv det efter denne kode: if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { //Henter billede converter require_once('MySQL/Plugin/class.imagemake_MySQL.php'); //ser efter om filnavnet allerede eksistere. $nr = "0"; $stop = "0"; while($stop == 1) { $nr++; $filnavn = "$regs[1]$nr_thumb.$regs[2]"; if (is_file("Billeder/$realfilnavn")) { //forsæt } else { $stop = "1"; //Indstilinger $midlertidig = "$regs[1]$nrmidlertidig.$regs[2]"; $realfilnavn = "$regs[1]$nr_real.$regs[2]"; $thumbfilnavn = "$regs[1]$nr_thumb.$regs[2]"; } }
20. januar 2009 - 21:40
#5
En del af problemmet ligger nu stadig i at $nrmidlertidig opføre sig som variablem nrmidlertidig og _IKKE_ $nr og midlertidig hvis jeg skiver denne kode... $test = "test.jpg"; if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $test, $regs)) { $nr = "0"; $filnavn = "$regs[1]$nr_thumb.$regs[2]"; //Indstilinger $buffilnavn = "$regs[1]\-$nr\_buf\.$regs[2]"; $realfilnavn = "$regs[1]\-$nr\_real\.$regs[2]"; $thumbfilnavn = "$regs[1]\-$nr\_thumb\.$regs[2]"; $destination = "Billeder/"; //Andet $bufdestination = "$destination$midlertidig"; $thumbdestination = "$destination$thumbfilnavn"; $realdestination = "$destination$realfilnavn"; } echo 'filnavn: '.$filnavn.'<br />'; echo 'buffilnavn: '.$buffilnavn.'<br />'; echo 'realfilnavn: '.$realfilnavn.'<br />'; echo 'thumbfilnavn: '.$thumbfilnavn.'<br />'; echo 'bufdestination: '.$bufdestination.'<br />'; echo 'thumbdestination: '.$thumbdestination.'<br />'; echo 'realdestination: '.$realdestination.'<br />'; ... Så skiver den de rigtige variabler men desvære også \ Resultat... filnavn: test.jpg buffilnavn: test\-0\_buf\.jpg realfilnavn: test\-0\_real\.jpg thumbfilnavn: test\-0\_thumb\.jpg bufdestination: Billeder/ thumbdestination: Billeder/test\-0\_thumb\.jpg realdestination: Billeder/test\-0\_real\.jpg ellers ville den bare skive... filnavn: test.jpg buffilnavn: test-.jpg realfilnavn: test-.jpg thumbfilnavn: test-.jpg bufdestination: Billeder/ thumbdestination: Billeder/test-.jpg realdestination: Billeder/test-.jpg Derfor har jeg lidt svært ve at teste det du forslår da det ikke kan virke, men jeg vil da nu prøve :D
20. januar 2009 - 21:49
#6
Den udskiver dette, ved dit eksempel :D filnavn: Intet-billede.jpg buffilnavn: realfilnavn: thumbfilnavn: bufdestination: thumbdestination: realdestination:
20. januar 2009 - 21:51
#7
Så ret: $midlertidig = "$regs[1]$nrmidlertidig.$regs[2]"; til: $midlertidig = "$regs[1].$nr.$midlertidig.$regs[2]";
20. januar 2009 - 21:56
#8
Det første skal være sådan hvis det skal give mening, da den aldig vil kunne finde $filnavn men det virker stadig ikke sandsynligvis pga samme problem som jeg har skrævet om tideliger. <?php $filnavn = "Intet-billede.jpg"; if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { //Henter billede converter require_once('MySQL/Plugin/class.imagemake_MySQL.php'); //ser efter om filnavnet allerede eksistere. $nr = "0"; $stop = "0"; while($stop == 1) { $nr++; $thumbfilnavn = "$regs[1]$nr_thumb.$regs[2]"; if (is_file("Billeder/$thumbfilnavn")) { //forsæt } else { $stop = "1"; //Indstilinger $buffilnavn = "$regs[1]$nrmidlertidig.$regs[2]"; $realfilnavn = "$regs[1]$nr_real.$regs[2]"; $thumbfilnavn = "$regs[1]$nr_thumb.$regs[2]"; } } $destination = "Billeder/"; //Andet $filnavn = "$regs[1]$nr.$regs[2]"; $bufdestination = "$destination$midlertidig"; $thumbdestination = "$destination$thumbfilnavn"; $realdestination = "$destination$realfilnavn";
20. januar 2009 - 22:00
#9
SE her: $buffilnavn = "$regs[1]$nrmidlertidig.$regs[2]"; Skal det ikke være: $buffilnavn = "$regs[1]$nr.$midlertidig.$regs[2]"; Men hvor kommer $midlertidig fra ?
20. januar 2009 - 22:08
#10
Man kunne også kalde det $buffilnavn = "$regs[1]$nr_buf.$regs[2]"; $realfilnavn = "$regs[1]$nr_real.$regs[2]"; $thumbfilnavn = "$regs[1]$nr_thumb.$regs[2]" Det jeg mener er at _buf. og _real. og _thumb. er tekst, men det kan jeg selvfølgelig bare ligge ind i en variabel.
20. januar 2009 - 22:13
#11
if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { //Henter billede converter require_once('MySQL/Plugin/class.imagemake_MySQL.php'); //NY $buf = "_buf."; $real = "_real."; $thumb = "_thumb."; //ser efter om filnavnet allerede eksistere. $nr = "0"; $stop = "0"; while($stop == 1) { $nr++; $thumbfilnavn = "$regs[1]$nr$thumb.$regs[2]"; if (is_file("Billeder/$thumbfilnavn")) { //forsæt } else { $stop = "1"; //Indstilinger $buffilnavn = "$regs[1]$nr$buf$regs[2]"; $realfilnavn = "$regs[1]$nr$real$regs[2]"; $thumbfilnavn = "$regs[1]$nr$thumb$regs[2]"; } } $destination = "Billeder/"; //Andet $filnavn = "$regs[1]$nr.$regs[2]"; $bufdestination = "$destination$midlertidig"; $thumbdestination = "$destination$thumbfilnavn"; $realdestination = "$destination$realfilnavn"; Ser ud til at give de rigtige værdier, men om det virker finder jeg først ud af i morgen, da jeg er for træt nu.
20. januar 2009 - 22:13
#12
Men i stedet for at smide ting i variabler, og bruge disse variabler i variabler osv... Så prøv at skær lidt ned på variabler, så vil overskueligheden også blive bedre.
21. januar 2009 - 14:23
#13
Jov men hvordan sætter jeg tekst ind i en variabel $bufdestination = "TEKST(Billeder/) $VARIABEL"; Men det er lykkedes mig at få de rigtiige verdier nu. <?php $filnavn = "Intet-billede.jpg"; if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { //Henter billede converter require_once('MySQL/Plugin/class.imagemake_MySQL.php'); //NY $buf = "_buf."; $real = "_real."; $thumb = "_thumb."; //ser efter om filnavnet allerede eksistere. $nr = "0"; $stop = "0"; while($stop == 1) { $nr++; $thumbfilnavn = "$regs[1]$nr$thumb$regs[2]"; if (is_file("Billeder/$thumbfilnavn")) { //forsæt } else { $stop = "1"; } } $destination = "Billeder/"; //Indstilinger $buffilnavn = "$regs[1]$nr$buf$regs[2]"; $realfilnavn = "$regs[1]$nr$real$regs[2]"; $thumbfilnavn = "$regs[1]$nr$thumb$regs[2]"; $filnavn = "$regs[1]$nr.$regs[2]"; $bufdestination = "$destination$buffilnavn"; $thumbdestination = "$destination$thumbfilnavn"; $realdestination = "$destination$realfilnavn"; echo 'filnavn: '.$filnavn.'<br />'; echo 'buffilnavn: '.$buffilnavn.'<br />'; echo 'realfilnavn: '.$realfilnavn.'<br />'; echo 'thumbfilnavn: '.$thumbfilnavn.'<br />'; echo 'bufdestination: '.$bufdestination.'<br />'; echo 'thumbdestination: '.$thumbdestination.'<br />'; echo 'realdestination: '.$realdestination.'<br />'; //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye if (move_uploaded_file($_FILES['minfil']['tmp_name'], $bufdestination)) Men den skiver stadig "Der er sket en fejl"
21. januar 2009 - 14:42
#14
Jeg ville gøre sådan her: $bufdestination = "TEKST" . $VARIABEL;
21. januar 2009 - 17:18
#15
Sådan nu har jeg fjernet en del variabler og den udskriver stadig de rigte variabler. Men jeg kan stadig se at den ikke uploader filen ("Der er sket en fejl") Og at lykken der tjekker om der findes en lignede filnavn ikke virker.
21. januar 2009 - 17:18
#16
hele billede delen ses her... _______________________________________________________ <?php $filnavn = "Intet-billede.jpg"; if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { //Henter billede converter require_once('MySQL/Plugin/class.imagemake_MySQL.php'); //ser efter om filnavnet allerede eksistere. $nr = "0"; $stop = "0"; while($stop == 1) { $nr++; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; if (is_file("$tjekthumb") || is_file("$tjekreal")) { //forsæt } else { $stop = "1"; } } //Indstilinger $filnavn = $regs[1] . "" . $nr . "." .$regs[2]; $bufdestination = "Billeder/" . $regs[1] . "" . $nr . "_buf." . $regs[2]; $thumbdestination = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $realdestination = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; echo 'filnavn: '.$filnavn.'<br />'; echo 'bufdestination: '.$bufdestination.'<br />'; echo 'thumbdestination: '.$thumbdestination.'<br />'; echo 'realdestination: '.$realdestination.'<br />'; //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye < if (move_uploaded_file($_FILES['minfil']['tmp_name'], $bufdestination)) { echo '<div style="text-align:left">Filen: '.$filnavn.' blevet uploadet</div>'; //< $info = getimagesize("$bufdestination"); $infobredde = $info[0]; $infohojde = $info[1]; /******************* /thumb udregner / *******************/ if ($infohojde < $infobredde) { $thumpforhold = "$infobredde / 280"; $thumprelativhojde = "$infohojde / $thumpforhold"; $thumpbredde = "280"; $thumphojde = round($thumprelativhojde); } elseif ($infobredde < $infohojde) { $thumpforhold = "$infohojde / 280"; $thumprelativbredde = "$infobredde / $thumpforhold"; $thumphojde = "280"; $thumpbredde = round($thumprelativbredde); } if ($infobredde == $infohojde) { $thumphojde = "280"; $thumpbredde = "280"; } /******************* /real udregner / *******************/ if ($infohojde < $infobredde) { $realforhold = "$infobredde / 280"; $realrelativhojde = "$infohojde / $realforhold"; $realbredde = "280"; $realhojde = round($realrelativhojde); } elseif ($infobredde < $infohojde) { $realforhold = "$infohojde / 280"; $realrelativbredde = "$infobredde / $realforhold"; $realhojde = "280"; $realbredde = round($realrelativbredde); } if ($infobredde == $infohojde) { $realhojde = "280"; $realbredde = "280"; } /******************* /Gemmer thumb img / *******************/ try { $image = new image('.$bufdestination.'); $image->quality(70); $image->resize($thumpbredde,$thumphojde); $image->watermark('img/vandmaerke.png', 'RIGHT','BOTTOM'); $image->save($thumbdestination); } catch(Exception $e) { echo 'Exception Caught : <b >' . $e->getMessage() . '</b>'; } /******************* /Gemmer real img / *******************/ try { $image = new image('.$bufdestination.'); $image->quality(100); $image->resize($realbredde,$realhojde); $image->watermark('img/vandmaerke.png', 'RIGHT','BOTTOM'); $image->save($realdestination); } catch(Exception $e) { echo 'Exception Caught : <b >' . $e->getMessage() . '</b>'; } /******************* /Sletter buf fil / *******************/ if (is_file("$bufdestination")) //Tjek om filen findes { unlink("$bufdestination"); //Sletter fillen } } else { echo '<div style="text-align:left">Der er sket en fejl</div>'; } } else { echo '<div style="text-align:left">Intet billede uploaded,<br /> bruger standart billede.</div>'; } } else { if (isset($_POST['billede'])) { $sti = $_POST['billede']; echo '<div style="text-align:left">A-Mweb.dk har forsøgt at genskabe det sidste uploaded billede.</div>'; } else { echo '<div style="text-align:left">Der er sandsynligvis ikke<br />uploaded noget billede,<br /> standart billede vil blive brugt.<br /></div>'; } } echo '<div style="text-align:right"><img src="'.$thumbdestination.'" height="280" width="280" alt="billede" /></div>'; ?>
21. januar 2009 - 20:49
#17
Ret lige: $nr = "0"; $stop = "0"; $stop = "1"; til: $nr = 0; $stop = 0; $stop = 1;
21. januar 2009 - 21:07
#18
Alså jeg uploader billede TEST0_thumb.jpg via FTP og tester så efter jeg har rettet til det du siger. Men det virker ikke. Jeg for... filnavn: TEST0.jpg bufdestination: Billeder/TEST0_buf.jpg thumbdestination: Billeder/TEST0_thumb.jpg realdestination: Billeder/TEST0_real.jpg Men skulle få... filnavn: TEST1.jpg bufdestination: Billeder/TEST1_buf.jpg thumbdestination: Billeder/TEST1_thumb.jpg realdestination: Billeder/TEST1_real.jpg Jeg prøver lidt senere at holde det helt simpelt og så ligge mere til, men tak for den hjælp du ynder ganske gratis. Det syntes jeg er god stil :D
21. januar 2009 - 21:34
#19
Prøv lige at udskriv: print_r($regs) lige efter din preg_match()
22. januar 2009 - 14:23
#20
Det ser rigtigt ud Array ( [0] => TEST.jpg [1] => TEST [2] => jpg )
22. januar 2009 - 14:31
#21
Så skal du igang med at fejlsøge i din $nr funktion...
22. januar 2009 - 14:46
#22
Jeg ville prove med det men det virker ikke :( <?php $filnavn = "Intet-billede.jpg"; if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { echo "<pre>"; print_r($regs); echo "</pre>"; $thumbdestination = "Billeder/" . $_FILES['minfil']['name']; echo 'thumbdestination: '.$thumbdestination.'<br />'; //Forsøg at flyttede den uploadede fil har dens midlertidige destination til den nye if (move_uploaded_file($_FILES['minfil']['tmp_name'], $thumbdestination)) { echo "Filen" . $_FILES['minfil']['name'] . " blevet uploadet"; } else { echo "Der er sket en fejl"; } } } echo '<div style="text-align:right"><img src="'.$thumbdestination.'" height="280" width="280" alt="billede" /></div>'; ?> Den udskriver … Array ( [0] => TEST.jpg [1] => TEST [2] => jpg ) thumbdestination: Billeder/TEST.jpg Der er sket en fejl
22. januar 2009 - 14:47
#23
"Jeg vil lige prøve med dette" skulle der stå
22. januar 2009 - 15:02
#24
Så må det jo være thumbdestination: Billeder/TEST.jpg Der er problemet. Har ligger mappen Billeder/ i samme mappe som php scriptet ?
22. januar 2009 - 15:09
#25
Index.php inkluder MySQL/Opret-opskrift/Opret-se_MySQL.php Billede mappen ligger her Billeder/ Så ja Billeder ligger i samme mappe som index.php Jeg har læst at der er noget der hedder safe mode, kan det have noget at sige. if( ini_get('safe_mode') ) { echo 'safe mode: ON <br />'; }else { echo 'safe mode: OFF <br />'; } Udiver safe mode: OFF
22. januar 2009 - 15:09
#26
Jeg vil lige prøve med nogle absolutte stier /rod/mappe/...
22. januar 2009 - 15:32
#28
Han dette have noget at sige... Frontpage Extensions Frontpage Extensions allow you to publish your site directly from the FrontPage application. This means that you will not have to upload files through FTP, or another method. Warning: Installing or uninstalling Frontpage Extensions will result in the loss of all ".htaccess" files in your web area. Any changes you have made to your ".htaccess" files will be lost. Any directories you have protected with WebProtect will become unprotected until you reprotect them. Domain -------------|---- Status ____________________|_____________ a-mweb.dk ----------|---- installed kogebogen.a-mweb.dk |---- not installed <-- det ligger på denne
22. januar 2009 - 15:33
#29
Domain --------------------|-- Status ___________________|_____________ a-mweb.dk ---------------|-- installed kogebogen.a-mweb.dk |-- not installed <-- det ligger på denne
22. januar 2009 - 15:56
#30
Jeg ville netop prøve med absolutte stier. F.eks.: $thumbdestination = getcwd() . "/Billeder/" . $_FILES['minfil']['name']; Og du er sikker på Billeder mappen er med stort B og ikke billeder ?
22. januar 2009 - 15:58
#31
Yes jeg har kopieret teksten :) Men det er noget jeg plejer at glemme på et tidspunkt. Jeg vil prøve med absolutte stiler men skal da lige finde ud af hvad getcwd() gør
22. januar 2009 - 16:03
#32
Nope Array ( [0] => TEST.jpg [1] => TEST [2] => jpg ) thumbdestination: /home/amwebdk/public_html/Portal/WWW_Kogebogen/Billeder/TEST.jpg safe mode: OFF Der er sket en fejl
22. januar 2009 - 16:45
#33
Har du allerede en fil der hedder: /home/amwebdk/public_html/Portal/WWW_Kogebogen/Billeder/TEST.jpg ??
22. januar 2009 - 17:39
#34
22. januar 2009 - 18:23
#35
Og Billeder/ er chmod'et til 777 ?
22. januar 2009 - 21:12
#36
Yeps Så jeg forså ingen ting, det har nemlig virket ???
22. januar 2009 - 21:19
#37
I morgen når jeg kommer hjem til min PC kan jeg lige lave en ny PHP side, som ligger på main domænet, og som er så simpelt som det kan være. Det skulle meget gerne virke, og så må jeg vel fylde lidt på meget lidt af gangen. Men det er godt nok sært!
22. januar 2009 - 21:29
#38
Prøv evt. at kontakt mig på msn: jakobdo /at\ hotmail \dot/ com Så må jeg evt. kigge på det direkte via ftp, hvis det er muligt.
23. januar 2009 - 14:59
#39
Jeg tror jeg har fundet ud af hvorfor. Filen jeg prøver at uploade er bare for stor, ifølge min server. Så det skal jeg lige have testet. Men det er nu lykkedes mig at uploade en fil her
http://www.a-mweb.dk/Portal/TEST/
23. januar 2009 - 15:02
#40
Yeps, stor fil virker ikke, lille fil gør. :D
23. januar 2009 - 15:04
#41
Hvor stor er din store fil i pixels ? Højde x bredde ?
23. januar 2009 - 16:02
#42
Min fil er 800x600 Ud kommer så i dette tilfælde thump: 280x210 ; kvalitet 65% real: 700x525 ; kvalitet 90% Men nu virker upload delen da, men min navne lykke virker ikke. Jeg har lidt en ide om at den virker ligesom en funktion xxx() at det der sker der inde ikke komme udenfor og det er grunden til at $nr er 0 uanset hvad. kode... /******************* /ændre filnavnet / *******************/ $nr = 0; $stop = 0; while($stop == 1) { $nr++; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; if (is_file("$tjekthumb") || is_file("$tjekreal")) { //forsæt } else { $stop = 1; } } /******************* /laver standart var/ *******************/ $filnavn = $regs[1] . "" . $nr . "." .$regs[2]; $bufdestination = "Billeder/" . $regs[1] . "" . $nr . "_buf." . $regs[2]; $thumbdestination = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $realdestination = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; /******************* /tester variabler / *******************/ echo 'filnavn: '.$filnavn.'<br />'; echo 'bufdestination: '.$bufdestination.'<br />'; echo 'thumbdestination: '.$thumbdestination.'<br />'; echo 'realdestination: '.$realdestination.'<br />'; echo 'nr.: '.$nr.'<br />'; echo 'tjekthumb: '.$tjekthumb.'<br />'; echo 'tjekreal: '.$tjekreal.'<br />'; Udskriver... filnavn: TEST0.jpg bufdestination: Billeder/TEST0_buf.jpg thumbdestination: Billeder/TEST0_thumb.jpg realdestination: Billeder/TEST0_real.jpg nr.: 0 tjekthumb: tjekreal: Filen: TEST0.jpg blevet uploadet
23. januar 2009 - 17:25
#43
Test lige denne kode: $nr = 1; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; while(!is_file($tjekthumb) && !is_file($tjekreal)){ $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; $nr++; }
23. januar 2009 - 18:32
#44
Hva' ****** er det for en dræber lykke :D Fatal error: Maximum execution time of 120 seconds exceeded in /home/amwebdk/public_html/Portal/WWW_Kogebogen/MySQL/Opret-opskrift/Opret-se_MySQL.php on line 94 94 = while(!is_file($tjekthumb) && !is_file($tjekreal)){ Betyder --> !(is file()) <-- ikke hvis filen ikke eksisterer. Og skal $nr++ ikke også være før $tjekthump
23. januar 2009 - 18:35
#45
$nr = 1; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; while(is_file($tjekthumb) && is_file($tjekreal)) { $nr++; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; } Virker :D
23. januar 2009 - 18:51
#46
Det ser ud til at virke mange tak, lig et svar :D
23. januar 2009 - 20:26
#47
Jo, det skal selvfølgelig være is_file() og ikke !is_file() Du får et svar.
23. januar 2009 - 23:33
#48
tak :D
24. januar 2009 - 08:48
#49
Takker for point. Betyder det alt virker nu ?
24. januar 2009 - 11:41
#50
Ja alt virker nu, mit næste problem er at søger for at den ikke uploader det samme billede igen og igen hvis man trykker på knapen mere end en gang. Men det tror jeg nu godt at jeg kan løse selv. Til arkivet så ses hele koden her. <form method="post" action="denne side.php" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> <input type="file" name="minfil" /> Max 1 MB <input type="submit" value=" Test opskrift " /> </form> <?php $filnavn = "Intet-billede.jpg"; if ($_FILES['minfil']) //Har brugeren forsøgt at uploade noget? { if (preg_match("/^([^\.]+)\.(jpg|png|gif|bmp)$/", $_FILES['minfil']['name'], $regs)) { /******************* /hent billedelaver / *******************/ require_once('MySQL/Plugin/class.imagemake_MySQL.php'); /******************* /ændre filnavnet / *******************/ $nr = 1; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; while(is_file($tjekthumb) && is_file($tjekreal)) { $nr++; $tjekthumb = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $tjekreal = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; } /******************* /laver standart var/ *******************/ $filnavn = $regs[1] . "" . $nr . "." .$regs[2]; $bufdestination = "Billeder/" . $regs[1] . "" . $nr . "_buf." . $regs[2]; $thumbdestination = "Billeder/" . $regs[1] . "" . $nr . "_thumb." . $regs[2]; $realdestination = "Billeder/" . $regs[1] . "" . $nr . "_real." . $regs[2]; /******************* /flyt tmp til _buf / *******************/ if (move_uploaded_file($_FILES['minfil']['tmp_name'], $bufdestination)) { echo '<div style="text-align:left">Filen: '.$filnavn.' blevet uploadet</div>'; //< /******************* /find højde+brædde / *******************/ $info = getimagesize("$bufdestination"); $infobredde = $info[0]; $infohojde = $info[1]; /******************* /thumb udregner / *******************/ if ($infohojde < $infobredde) { $thumpforhold = "$infobredde / 280"; $thumprelativhojde = "$infohojde / $thumpforhold"; $thumpbredde = "280"; $thumphojde = round($thumprelativhojde); } elseif ($infobredde < $infohojde) { $thumpforhold = "$infohojde / 280"; $thumprelativbredde = "$infobredde / $thumpforhold"; $thumphojde = "280"; $thumpbredde = round($thumprelativbredde); } elseif ($infobredde == $infohojde) { $thumphojde = "280"; $thumpbredde = "280"; } $thumpquality = 65; /******************* /real udregner / *******************/ if ($infohojde < $infobredde) { $realforhold = "$infobredde / 700"; $realrelativhojde = "$infohojde / $realforhold"; $realbredde = "700"; $realhojde = round($realrelativhojde); } elseif ($infobredde < $infohojde) { $realforhold = "$infohojde / 700"; $realrelativbredde = "$infobredde / $realforhold"; $realhojde = "700"; $realbredde = round($realrelativbredde); } elseif ($infobredde == $infohojde) { $realhojde = "700"; $realbredde = "700"; } $realquality = 90; /******************* /Gemmer thumb img / *******************/ try { $image = new image($bufdestination); $image->quality($thumpquality); $image->resize($thumpbredde,$thumphojde); $image->watermark('img/vandmaerke.png', 'RIGHT','BOTTOM'); $image->save($thumbdestination); } catch(Exception $e) { echo 'Exception Caught : <b >' . $e->getMessage() . '</b>'; } /******************* /Gemmer real img / *******************/ try { $image = new image($bufdestination); $image->quality($realquality); $image->resize($realbredde,$realhojde); $image->watermark('img/vandmaerke.png', 'RIGHT','BOTTOM'); $image->save($realdestination); } catch(Exception $e) { echo 'Exception Caught : <b >' . $e->getMessage() . '</b>'; } /******************* /Sletter buf fil / *******************/ if (is_file("$bufdestination")) //Tjek om filen findes { unlink("$bufdestination"); //Sletter fillen } } else { echo '<div style="text-align:left">Der er sket en fejl</div>'; } } else { echo '<div style="text-align:left">Intet billede uploaded,<br /> bruger standart billede.</div>'; } } ?>
24. januar 2009 - 14:52
#51
Det kan du nemt løse. Efter du har uploadet billedet korrekt, så laver du en: header('Location: denne_side.php') exit(); Så bør man ikke kunne lave F5 og uploade igen og igen.
Vi tilbyder markedets bedste kurser inden for webudvikling