Lid |
|
Hallo,
Onderstaande script heb ik voor het uploaden van meerdere files(foto's) op mijn site.
Je kunt er meerdere files mee uploaden en deze worden verkleind naar het formaat dat ik wil en er wordt een link gemaakt en deze wordt in de database geplaatst.
Er kon steeds maar 1 foto mee geupload worden maar de geruiker kan nu aangeven hoeveel er geupload moeten worden en dan worden er dmv AJAX extra input fields aangemaakt, variable q.
Dit heb ik eerst uitgeprobeerd onder een testmap waar ook de andere foto's staan van de website en dat werkt, maar nu ik dit bij een al bestaande map met foto's wil uitproberen krijg ik onderstaande foutmelding
Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 2048 bytes) in /home/deskudde/domains/deskuddebuikkies.nl/public_html/fotoupload.php on line 56
Met een foto van bv 1MB krijg ik geen problemen, maar als ik er meerdere van bv 1MB tegelijk wil uploaden krijg ik de memory melding.
Weet iemand wat ik kan doen om dit te voorkomen en waarom dit niet elke keer gebeurt?
Het script is nogal traag heeft iemand een idee hoe het script sneller te krijgen is?
Onderstaande is het hele script zonder de ajax functie.
Volgens mij kan er snelheid behaald worden in het upload/verklein gedeelte, maar ik heb niet uit kunnen vinden hoe.
Ik hoop dat iemand me kan helpen.
Bvd.
[code=php]<div id="aantalupload">
<?
$gebruiker=$_GET['gebruiker'];
$mapnaam=$_GET['ond'];
//$mapnaam="testKeet";
if ($_GET["q"]!=0)
{
$aantaluploads = $_GET["q"];
//echo"q=0";
}
else
{
$aantaluploads = $_POST["aantalknop"];
//echo("q is niet 0 q is $aantaluploads");
}
include("database.php");
$sql = "SELECT naam FROM fotoalbum WHERE map='$mapnaam'";
$resultaat = mysql_query($sql);
$aantal = mysql_num_rows($resultaat);
//verklein/upload gedeelte
if ($_POST['upload']){
$counter=0;
$test2 = $_POST["aantalknop"];
//echo"<br> uploaden is gestart $aantaluploads test2 = $test2 <br><br>";
//echo"Aantaluploads voor for loop = $aantaluploads test = $test";
for ( $ii = 1; $ii <= $aantaluploads; $ii += 1)
{
getimagesize($_FILES["userfile"]["tmp_name"][$ii]);
$imgsize = $_FILES["userfile"]["size"][$ii];
//echo"Aantaluploads = $aantaluploads II = $ii";
if ($imgsize == "0")
{
//$counter=$counter-1;
}
else
{
ini_set('max_execution_time', 120);
$naam= $aantal+1;
$filename = "fotoalbum/".$mapnaam."/".$naam."-thumb.jpg";
$filename1 = "fotoalbum/".$mapnaam."/".$naam.".jpg";
$img = $_FILES['userfile']['tmp_name'][$ii];
REGEL 56 ---> $original = ImageCreateFromJpeg($img);
$originalw = imagesx($original);
$originalh = imagesy($original);
$thumbh = 100;
$thumbw= 100;
// $neworgh = 548;
$neworgw = 700;
//thumbs
$thumbratio = ($originalh / $thumbh);
$thumbdest = imagecreatetruecolor($thumbw,$thumbh);
imagecopyresampled($thumbdest,$original,0,0,0,0,$thumbw,$thumbh,$originalw,$originalh);
imagejpeg($thumbdest,$filename,70);
//nieuwe orgineel
// $orgratio = ($originalh / $neworgh);
$orgratio = ($originalw / $neworgw);
// $orgw = ($originalw / $orgratio);
$orgh = ($originalh / $orgratio);
$orgdest = imagecreatetruecolor($neworgw,$orgh);
imagecopyresampled($orgdest,$original,0,0,0,0,$neworgw,$orgh,$originalw,$originalh);
// $orgdest = imagecreatetruecolor($orgw,$neworgh);
// imagecopyresampled($orgdest,$original,0,0,0,0,$orgw,$neworgh,$originalw,$originalh);
imagejpeg($orgdest,$filename1,70);
$mapnaam = addslashes($mapnaam);
$datum = date ("Y-m-d");
$tijd = date("G:i");
$sql = "INSERT INTO fotoalbum (map,naam,datum,tijd,toestand) VALUES ('$mapnaam','$naam','$datum','$tijd',1)";
mysql_query($sql) or die("Er is iets mis gegaan met de invoer");
if ($aantaluploads==1)
{
echo"De foto is geplaatst";
}
$aantal++;
$counter++;
}
}
if ($aantaluploads>1)
{
echo"Er zijn $counter foto's geplaatst";
}
?>
<br>
Klik <a href="?id=bekijkfotosnieuw&ond=<?php echo"$mapnaam";?>" class="fotoupload">
hier</a>
om naar de foto's te gaan<br>
<? echo"of om tekst toe te voegen"; ?><br>
<? echo"Je kan ook nog een foto in dezelfde map zetten";
}
?>
//verklein/upload gedeelte tot hier
</p>
<p>Hier kunnen foto's geupload worden</p>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
<?
if($aantaluploads==0 && $_GET["q"]=="")
{
$aantaluploads=1;
}
//echo"Dit is de aantalupload test $aantal"
echo"Hoeveel foto's wil je uploaden? maximaal 20 per keer!<br>";
echo" <input type=\"text\" id=\"aantal2\" name=\"aantalknop\" value =\"$aantaluploads\" onClick=\"this.select()\">";
//echo" <input type=\"text\" id=\"aantal2\" name=\"aantalknop\" value =\"$aantaluploads\" onClick=\"this.select()\" onkeyup=\"aantalUpload(this.value)\">";
echo"<input type=\"submit\" onClick=\"aantalUpload(aantalknop)\" value=\"wijzigen\">";
?>
<br>
<br>
Upload Image
<br>
<?
if ($aantaluploads>20)
{
echo"Er mogen maximaal 20 foto's per keer geupload worden!!";
}
else
{
for ( $i = 1; $i <= $aantaluploads; $i += 1)
{
echo"<input type=\"file\" id=\"userfile[$i]\" name=\"userfile[$i]\">";
?>
<br>
<?
}
?>
<input type="submit" name="upload" value="Upload">
</form>
<?
}
?>
</div>
|