19. juli 2003 - 13:06Der er
36 kommentarer og 1 løsning
Ændre størrelsen på et billede som skal uploades
Hej
Jeg har denne kode til at uploade billeder med:
if (isset($_FILES['upfile'])) { $id = $_GET['id']; $dist = $_SERVER['DOCUMENT_ROOT']."/avatars/"; $value = $_FILES['upfile']['name']; if ($value) { if (is_uploaded_file($_FILES['upfile']['tmp_name'])) { $temparr = explode(".", $value); $temparr[count($temparr)-2] = $id; $files = implode(".", $temparr); if (!eregi(".jpg$", $files)) { echo 'ugyldig filtype<br>'; exit; } move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $files); $billede_sti = "image.php?avatar=".$id; mysql_query("UPDATE brugere SET avatar='$billede_sti' WHERE id='$id'"); } else { echo 'Der er sket en fejl!'; } echo 'avatar uploadet'; } }
Nogle der kan lave så hvis billedet er større end 160 pixels i bredden så skal den ændre den til det.. og det skal være selve billedet den gør det på.... Højde skal den selv tilpasse så det passer med de 160 i bredden..
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
$filinfo = getimagesize($tempfil); if (!$uploadfil) { echo "Du har ikke valgt et billede<br>"; $fejl++; } elseif ($filinfo[2] != 2) { echo = "Ugyldig filtype(tilladt: jpg or jpeg/pjpg/pjpeg/jpe)<br>"; $fejl++; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>250) { echo "Size of picture (after downscale) is: $filstr kb. Modem-creatures won't love it<br>"; $fejl++; unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE id='$id'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>250) { echo "Size of picture (after downscale) is: $filstr kb. Modem-creatures won't love it<br>"; $fejl++; unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE id='$id'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
$filinfo = getimagesize($tempfil); if (!$uploadfil) { echo "Du har ikke valgt et billede<br>"; $fejl++; } elseif ($filinfo[2] != 2) { echo = "Ugyldig filtype(tilladt: jpg or jpeg/pjpg/pjpeg/jpe)<br>"; $fejl++; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>250) { echo "Size of picture (after downscale) is: $filstr kb. Modem-creatures won't love it<br>"; $fejl++; unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE id='$id'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
$filinfo = getimagesize($tempfil); if (!$uploadfil) { echo "Du har ikke valgt et billede<br>"; $fejl++; } elseif ($filinfo[2] != 2) { echo = "Ugyldig filtype(tilladt: jpg or jpeg/pjpg/pjpeg/jpe)<br>"; $fejl++; }
$filinfo = getimagesize($tempfil); if (!$uploadfil) { echo "Du har ikke valgt et billede<br>"; $fejl++; } elseif ($filinfo[2] != 2) { echo = "Ugyldig filtype(tilladt: jpg or jpeg/pjpg/pjpeg/jpe)<br>"; $fejl++; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>250) { echo "Size of picture (after downscale) is: $filstr kb. Modem-creatures won't love it<br>"; $fejl++; unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE id='$id'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
$filinfo = getimagesize($tempfil); if (!$uploadfil) { echo "Du har ikke valgt et billede<br>"; $fejl++; } elseif ($filinfo[2] != 2) { echo "Ugyldig filtype(tilladt: jpg or jpeg/pjpg/pjpeg/jpe)<br>"; $fejl++; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>250) { echo "Size of picture (after downscale) is: $filstr kb. Modem-creatures won't love it<br>"; $fejl++; unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE nick = '$_SESSION[user]'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
} else { echo "der skete en fejl"; } }
Hvis man ikke vælger nogle fil så skriver den denne fejl: Warning: getimagesize: Unable to open '' for reading. Du har ikke valgt et billede ---- Hvis man uploader et billede igen så skal den bare ændre adressen i bruger avatar feltet og så skal den bare overskrive det gamle billede... ---- Den skal også sætte kvaliteten ned til 85 som den går hvis den skal ændre størrelsen hvis den ikke skal ændre størrelsen...
Hvis du hjælper mig med det så kan du få ialt 200 points...
$query = @mysql_query("SELECT id FROM brugere WHERE nick = '$_SESSION[user]'"); $row = @mysql_fetch_array($query); $id = $row['id']; if (!$id) { echo "bruger ikke fundet"; exit; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>$maxkb) { echo "Billedet fylder for meget: ($filstr kb). Tænk på folk med modem :)<br>"; $fejl++; @unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE nick = '$_SESSION[user]'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>$maxkb) { echo "Billedet fylder for meget: ($filstr kb). Tænk på folk med modem :)<br>"; $fejl++; @unlink($picsti.$nyfil); }
@mysql_query -> hvor har du @ først?
$picurl = "image.php?avatar=$id_".date("d-m-H-i-s"); -> Dato der??
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>$maxkb) { echo "Billedet fylder for meget: ($filstr kb). Tænk på folk med modem :)<br>"; $fejl++; @unlink($picsti.$nyfil); }
er til at begrænse størrelsen i kb på filerne.. men du ka bare fjerne det hvis det ikke er nødvendigt.
@ foran mysql_queries er for at undgå at der bliver vist evt. fejl fra databasen. de skal nok først på når det hele kører som det skal.
$picurl = "image.php?avatar=$id_".date("d-m-H-i-s"); -> Dato der?? ja, dato der. For at forny billedets navn hver gang det blir udskiftet. Ellers vil det gamle billede fra cachen blive vist.
ret hele scriptet til:
$query = @mysql_query("SELECT id FROM brugere WHERE nick = '$_SESSION[user]'"); $row = @mysql_fetch_array($query); $id = $row['id']; if (!$id) { echo "bruger ikke fundet"; exit; }
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>$maxkb) { echo "Billedet fylder for meget: ($filstr kb). Tænk på folk med modem :)<br>"; $fejl++; @unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE nick = '$_SESSION[user]'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
Hvis jeg godt vil fjerne det med at man ikke kan uploade for store fil skal jeg så slettet dette?
$filstr = round(filesize($picsti.$nyfil)/1000); if ($filstr<1) { $filstr=1; } if ($filstr>$maxkb) { echo "Billedet fylder for meget: ($filstr kb). Tænk på folk med modem :)<br>"; $fejl++; @unlink($picsti.$nyfil); }
@mysql_query("UPDATE brugere SET avatar='$picurl' WHERE nick = '$_SESSION[user]'"); if (@mysql_affected_rows()>0) { echo "billede uploadet"; } else { echo "der skete en fejl (database)"; }
50 kunne være antallet af karakterer (max) du reserverer til feltet. alt efter 50 bliver så cuttet væk og optager ikke plads i databasen. Hvis du har sat det til f.eks 10, kan linket ikke være i feltet og bliver "korrupt".
Man bruger tit felttypen VARCHAR til tekst under 257 karakterer. Derudover kan "text" eller "blob" bruges.. det er til binær data og optager en del mere plads.
Har du ændret linien med filnavn tilbage så datoen er med? $nyfil = $id."_".date("d-m-H-i-s").".jpg";
mysql opdaterer nemlig IKKE en række, hvis det du putter ind er identisk med det der var i forvejen. Men når der er dato og tid med, burde det bare virke...
jeg mener.. filens størrelse/kvalitet vil ikke ændre sig betydeligt. og hvis kvaliteten i forvejen er lav, bliver den kun endnu værre.
Synes godt om
Ny brugerNybegynder
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.