Versio

aanpassing uploadscript

Overzicht Reageren

SCO

SCO

31/07/2007 16:05:00
Quote Anchor link
Hoi allemaal,

graag zou ik mijn huidige uploadscript aanpassen met twee functies:
* ik wil dat de geuploade fotos via ftp downloadbaar zijn (dat is nu niet het geval)
* en ik wil graag dat hij naast het uploaden ook thumbnails aanmaakt, met formaat 220 x 150 pix, en deze wegzet in een apart mapje, bijvoorbeeld database/thumbnails/

Dit is zijn mijn scripts...hopelijk kan iemand me helpen :P Alvast heel erg bedankt!

--------upload.php-------------
<form enctype="multipart/form-data" method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo "species_photo_nieuw_submit.php?lettercode=". $lettercode_url ."&p=1"?>
">
<p>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?
$lettercode_url
= $_GET['lettercode'];
//Haal soort op
$var = mysql_query("SELECT * FROM soortentabel WHERE lettercode LIKE '$lettercode_url' ORDER BY nummer DESC LIMIT 1") or die (mysql_error());
$soortinfo = mysql_fetch_object($var);
//Bepaal wat de laatste foto is, bij 8 fotos kan je geen nieuwe fotos meer toevoegen.
$var = mysql_query("SELECT * FROM photos WHERE lettercode LIKE '$lettercode_url' ORDER BY photonr DESC LIMIT 1") or die (mysql_error());
$current = mysql_fetch_object($var);
$max = $current->photonr;
$plus1 = 1;
$new = $plus1 + $max;
if ($new == 9)
{

echo "Je kan geen extra fotos meer toevoegen";
}

else
{
echo "<i>Let op: de foto moet een .jpg bestandsformaat zijn, afmetingen hebben van 600 x 400 pix en een maximale grootte hebben van 100 KB.</i>";
echo "<input type='hidden' name='MAX_FILE_SIZE' value='10000000' />";
echo "<br><br>Selecteer een bestand: <br><input name='userfile' type='file'>";
echo "<input name='newname' value='". $soortinfo->nummer ."_". $soortinfo->genus ."_". $soortinfo->soort ."_". $new .".jpg' type='hidden'><br />";
echo "Beschrijving foto: <br>";
echo "<input name='photodescr' type='text' size='30'><br>";
echo "Klasse: museum, adult, pop, larve, vraatspoor of ei: <br>";
echo "  <select name='photoclass'>
          <option selected>museum</option>
          <option>adult</option>
          <option>pop</option>
          <option>larve</option>
          <option>vraatspoor</option>
          <option>ei</option>
        </select><br>"
;
echo "<input name='newphotonr' type='hidden' value='". $new ."' size='1'>";
echo "<input name='nummer' type='hidden' value='". $soortinfo->nummer ."' size='4'>";
echo "<input name='nummeradd' type='hidden' value='". $soortinfo->nummeradd ."' size='1'>";
echo "<input name='familie' type='hidden' value='". $soortinfo->familie ."' size='25'>";
echo "<input name='subfamilie' type='hidden' value='". $soortinfo->subfamilie ."' size='25'><br>";
echo "<input name='lettercode' type='hidden' value='". $soortinfo->lettercode ."' size='8'>";
echo "<input name='genus' type='hidden' value='". $soortinfo->genus ."' size='30'>";
echo "<input name='soort' type='hidden' value='". $soortinfo->soort ."' size='30'>";
echo "<input type='submit' value='upload bestand' />";
}

?>



--------species_photo_nieuw_submit.php-------------

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?
global $_FILES;

$filename = $_FILES['userfile']['name'];  

$allow[0] = "jpg";
// $allow[3] = "exe"; enz.

if ($_POST["newname"])
    $uploadname = $_POST['newname'];
else
    $uploadname = $_FILES['userfile']['name'];
    
$extentie = substr($uploadname, -3);

for ($i = 0; $i < count($allow); $i++)
{

    if ($extentie == $allow[$i])
    {

        $extentie_check = "ok";
        $i = count($allow) + 5; // om loop te beindigen
    }
}


if ($extentie_check)
{

    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {  
        move_uploaded_file($_FILES['userfile']['tmp_name'], "database/" . $uploadname);  

        echo "Het bestand is geupload onder de naam: $uploadname.<br>";
        echo "<class='text'>Je kan de beschrijving bewerken, klik <a href='species_photo_edit.php?lettercode=". $lettercode_url . "&p=1'><u>hier</u></a>.<br><p>";
    }
}

else
{
    echo "Erg ging iets mis, mogelijk is je bestand te groot, of is het een verkeerd bestandstype (alleen .jpg is toegestaan). <p>";
    echo "<class='text'>Probeer het <a href='species_photo_edit.php?lettercode=". $lettercode_url . "&p=1'><u>opnieuw</u></a>.<br><p>";
    echo "NB: Het kan zijn dat je je browser even moet refreshen voordat de vervangende foto zichtbaar is.";
}
  
?>
Gewijzigd op 01/01/1970 01:00:00 door SCO
 
PHP hulp

PHP hulp

23/05/2012 15:34:05
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Melroy van den Berg

Melroy van den Berg

31/07/2007 17:50:00
Quote Anchor link
Het tweede puntje is niet al te moeilijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
$image
= $_GET['image'] ;
$newwidth = $_GET['newwidth'];
$newheight = $_GET['newheight'];
$height = $_GET['height'];
$width = $_GET['width'];
$correctheight = round($width/2*3);
$correctwidth = round($height/3*2);
$correctheightb = round($width/3*2);
$correctwidthb = round($height/2*3);
$ratio = ($height/$width);
$src = imagecreatefromjpeg("$image");
$im = imagecreatetruecolor($newwidth,$newheight);  

if ($croptofit)
{

if ($height > $width)
{

if ($ratio > 1.5)
{

$newy = round(($height-$correctheight)/2);
imagecopyresampled($im,$src,0,0,0,$newy,$newwidth,$newheight,$width,$correctheight);
}

else
{
$newx = round(($width-$correctwidth)/2);
imagecopyresampled($im,$src,0,0,$newx,0,$newwidth,$newheight,$correctwidth,$height);
}
}

else
if ($ratio < 0.67)
{

$newx = round(($width-$correctwidthb)/2);
imagecopyresampled($im,$src,0,0,$newx,0,$newwidth,$newheight,$correctwidthb,$height);
}

else
{
$newy = round(($height-$correctheightb)/2);
imagecopyresampled($im,$src,0,0,0,$newy,$newwidth,$newheight,$width,$correctheightb);
}
}

else
{
imagecopyresampled($im,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
}


imagejpeg($im, '',85);
imagedestroy($im);
?>
 
SCO

SCO

31/07/2007 18:40:00
Quote Anchor link
Bedankt!

Waar plaats ik dit script ongeveer en waar kan ik aangeven waar de thumbnails opgeslagen moeten worden?
 
Arjan Kapteijn

Arjan Kapteijn

31/07/2007 19:30:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
imagejpeg();
?>
 
SCO

SCO

31/07/2007 23:28:00
Quote Anchor link
Arjan Kapteijn schreef op 31.07.2007 19:30:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
imagejpeg();
?>


Hoi Arjan,

Wat bedoel je er precies mee? Helaas ben ik niet zon expert dat ik weet wat ik er mee moet. Ik kan nog net wat met hp en mysql stoeien, maar een upload script is me nog net iets te moeilijk. Kan je misschien het script helemaal geven en laten weten wat er waar ongeveer gebeurt?

dank je wel alvast!
 
Arjan Kapteijn

Arjan Kapteijn

31/07/2007 23:35:00
Quote Anchor link
Je wilt dat ik het even voor je maak? Of zoek je zelf even uit wat de juiste parameters zijn voor de imagejpeg functie?
 
SCO

SCO

02/08/2007 21:08:00
Quote Anchor link
Hoi Arjan,

Ik heb er weer even aan zitten knutselen. Inmiddels heb ik de parameters bepaald en gebruikt gemaakt van de functie function photoCreateCropThumb.
De parameters kloppen wel, maar het script werkt niet: ik tref geen thumnails aan in het mapje database/thumbnails. Ik heb de map Chmod 777 meegegeven.
Als ik
echo var_dump($pic);
echo "".$pic. "";
doe staat er NULL.

Als ik de parameters echo, dan kloppen die wel.
Ergens las ik dat je voor de imagecreatefromjpeg GD2 geinstalleerd moet hebben. Nou heb ik een webhoster, en via phpinfo krijg ik dit:
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)

dit zou het probleem niet moeten zijn? Wat is er wel aan de hand?

Hier mijn script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
//maken en opslaan van thumnails
//Parameters:
//$p_thumb_file - name of the file (including path) where thumb should be saved to
//$p_photo_file - nam of the source JPEG file (including path) thatthumbnail should be created of
//$p_max_size - with and height (they will be the same) in pixels for thumbnail image
//$p_quality - quality of jpeg thumbnail


$p_thumb_file = 'database/thumbnails/'.$uploadname.'';
$p_photo_file = 'database/'.$uploadname.'';
$p_max_size = 150;
$p_quality = 80;

function
photoCreateCropThumb ($p_thumb_file, $p_photo_file, $p_max_size, $p_quality) {
  
    $pic = @imagecreatefromjpeg($p_photo_file);

    if ($pic) {
        $thumb = @imagecreatetruecolor ($p_max_size, $p_max_size) or die ("Can't create Image!");
        $width = imagesx($pic);
        $height = imagesy($pic);
        if ($width < $height) {
                $twidth = $p_max_size;
                $theight = $twidth * $height / $width;
                imagecopyresized($thumb, $pic, 0, 0, 0, ($height/2)-($width/2), $twidth, $theight, $width, $height);
        }
else {
                $theight = $p_max_size;
                $twidth = $theight * $width / $height;
                imagecopyresized($thumb, $pic, 0, 0, ($width/2)-($height/2), 0, $twidth, $theight, $width, $height);
        }


        ImageJPEG ($thumb, $p_thumb_file, $p_quality);
    }

}

echo var_dump($pic);
    echo "".$pic. "";
    echo "".$p_photo_file. "";
    echo "".$p_thumb_file. "";
    echo "".$p_max_size. "";
    echo "".$p_quality. "";
    
phpinfo();   // alle info over de PHP config plus extensies
?>


Inmiddels heb ik punt 1) van mijn vraag inmiddels opgelost door onder
move_uploaded_file($_FILES['userfile']['tmp_name'], "database/" . $uploadname);
de volgende regel te zetten:
chmod('database/'.$uploadname.'', 0666);

Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door SCO
 
SCO

SCO

03/08/2007 21:09:00
Quote Anchor link
*bumb*

Is er nog iemand die mij kan/wil helpen?
 
Arjan Kapteijn

Arjan Kapteijn

03/08/2007 21:14:00
Quote Anchor link
Ik zie je nergens die functie aanroepen, dan blijft alles leeg natuurlijk. En waar komt die $pic vandaan? Die bestaat echt niet buiten de functie hoor.
 
SCO

SCO

03/08/2007 21:44:00
Quote Anchor link
Hmm..wat doe ik dan fout? Verder dan dit kom ik niet helaas! Kan iemand voor mij het script verbeteren? Ik zou niet weten hoe je het script moet aanroepen. Verder $pic komt uit $pic = @imagecreatefromjpeg($p_photo_file); $p_photo_file is gegeven.
Gewijzigd op 01/01/1970 01:00:00 door SCO
 
Remco Schenderling

Remco Schenderling

03/08/2007 21:46:00
Quote Anchor link
Dit snap ik niet eens als ben ik een beginner in PHP.
 
SCO

SCO

05/08/2007 01:44:00
Quote Anchor link
Kan iemand mij nog helpen?
 



Overzicht Reageren