afbeeldingen in geselecteerde map uploaden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan

Jan

25/08/2005 10:15:00
Quote Anchor link
Ik probeer een aanpassing van een uploadscript te maken, waarbij de foto wordt geresized, upgeload naar een bepaalde map (afhankelijk van de categorie die je kiest) en waarbij de gegevens ook naar een database worden toegegevoegd.

De gegevens worden allemaal toegevoegd aan de database, maar de foto wordt niet aangepast en upgeload naar de juiste map.
Hieronder het script.

het probleem zit hem ergens in de (waarde van) $categorie vermoed ik, want zonder selectie van een map, werkt het wel.


Ik krijg volgende foutmelding:

Warning: imagecreatefromjpeg(../albumfotos//big_nieuw.jpg): failed to open stream: No such file or directory in /opt/www/web/site/admin/album/addpic.php on line 23

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /opt/www/web/site/admin/album/addpic.php on line 103

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /opt/www/web/site/admin/album/addpic.php on line 105

Warning: imagedestroy(): supplied argument is not a valid Image resource in /opt/www/web/site/admin/album/addpic.php on line 110

Warning: filesize(): Stat failed for ../albumfotos/24/nieuw.jpg (errno=2 - No such file or directory) in /opt/www/web/site/admin/addpic.php on line 120

->alle mappen zijn chmod 777.

->Ik laad het script als volgt:
index2.php?content=album&actie=addpic


----addpic.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?
require("config.php");


 if (isset($_POST['uploaden']))
 {

  require("config.php");


  function
create_image_from($ext,$naam)
  {

   if ($ext == 'jpg')
    $org = imagecreatefromjpeg("../albumfotos/".$categorie."/big_".$naam);
   elseif ($ext == 'gif')
    $org = imagecreatefromgif("../albumfotos/".$categorie."/big_".$naam);
   elseif ($ext == 'png')
    $org = imagecreatefrompng("../albumfotos/".$categorie."/big_".$naam);
  else
    die("ERROR while creating image -> create_image_from");

  return $org;
 }
  
  function
complete_img($ext,$create,$naam)
  {

   if ($ext == 'jpg')
    imagejpeg($create, "../albumfotos/".$categorie."/".$naam, 100);
   elseif ($ext == 'gif')
    imagegif($create, "../albumfotos/".$categorie."/".$naam, 80);
   elseif ($ext == 'png')
    imagepng($create, "../albumfotos/".$categorie."/".$naam, 80);
   else
    die("ERROR while creating image -> complete_img");
  }


  $img = $foto_name;

  if ($img == "")
  {

   echo "U heeft geen bestand opgegeven.";
   exit();
  }

/*
  $naam = explode("/", $foto_name);  
  $naam = end($naam);
  $naam = strtolower($naam);
*/

  $expl = explode(".", $img);
  $ext = end($expl);
  $ext = strtolower($ext);
  
  $naam = $_POST['naam'].".".$ext;

  if (!(($ext == 'jpg') || ($ext == 'gif') || ($ext == 'png')))
  {

   echo "U afbeelding heeft niet de juiste extensie.<br>";
   echo "Toegestaan zijn: gif, jpg en png<br>";
   exit();  
  }


  copy($foto,"../albumfotos/".$categorie."/big_".$naam);
    
  // functie orginele foto ophalen
  $org = create_image_from($ext,$naam);

  $size = getimagesize("../albumfotos/".$categorie."/big_".$naam);
  $width = $size[0];
  $height = $size[1];

  if ($size[0] == $size[1])
  {

   $newwidth = 450;
   $newheight = 450;
  }

  elseif ($size[0] > $size[1])
  {

   $newwidth = 450;
   $newheight = round($size[1] * 450 / $size[0]);
  }

  elseif ($size[0] < $size[1])
  {

   $newheight = 450;
   $newwidth = round($size[0] * 450 / $size[1]);
  }

  else
  {
   echo "ERROR while createing image -> size";
   echo "$size[0] x $size[1]";
   exit();
  }

  
  $create = imagecreatetruecolor($newwidth, $newheight);
  imagecopyresized($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  imagecopyresampled ($create, $org, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

  // functie orginele foto ophalen
  complete_img($ext,$create,$naam);
  
  imagedestroy($org);
  imagedestroy($create);
  $del = "../albumfotos/".$categorie."/big_".$naam;
  //echo $del;
  unlink($del);
  
  $$img_dirsize = $foto_size;
  $name = $naam;
  $size = floor($$img_dirsize / 1024);
  $datum = date("Y-m-d H:i:s");
  $sizeNew = filesize("../albumfotos/".$categorie."/".$naam);
  $sizeNew = floor($sizeNew / 1024);

  //  invoegen in Database
  $query="INSERT INTO foto (bestand, omschrijving, categorie, auteur, datum) ";
  $query .= "VALUES ('";
  $query .= $name ."','";
  $query .=$_POST[omschrijving] ."','";
  $query .=$_POST[categorie] ."','";
  $query .=$_POST[auteur] ."','";
  $query .=$_POST[datum]."');";
   $result - mysql_query($query) or die ("Fout: " . mysql_error());
  

  
  echo "Orgineel:<br />";
  echo "Naam: ".$foto_name."<br />";
  echo "Grootte: ".$width." x ".$height."<br />";
  echo "Aantal Kb: ".$size." Kb<br /><br />";

  echo "Nieuw:<br />";
  echo "Naam: ".$name."<br />";
  echo "Grootte: ".$newwidth." x ".$newheight."<br />";
  echo "Aantal Kb: ".$sizeNew." Kb<br />";
  echo "Laatst Gewijzigd: ".$datum."<br />";
  

  ?>

<center>
Uw afbeelding is geupload.
<hr><img src="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo ("../albumfotos/".$categorie."/".$name);?>
"><hr>
Nog een afbeelding uploaden:
</center>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php

}
?>


<center>
<table>
<form method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $PHP_SELF; ?>
" enctype="multipart/form-data">
<tr><td>Bestand:</td><td><div align="left">
<input type="file" name="foto">
</div></td></tr>
<tr>
<td align="center"><div align="left">Nieuwe naam </div></td>
<td align="center"><div align="left">
<input name="naam" type="text" id="name">
</div></td>
</tr>
<tr>
<td align="center"><div align="left">Omschrijving</div></td>
<td align="center"><div align="left">
<input name="omschrijving" type="text" id="omschrijving">
</div></td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
include ("select_categorie.php");
include ("select_auteur.php");
?>

<tr>
<td align="center"><div align="left">Datum</div></td>
<td align="center"><div align="left">
<input name="datum" type="text" id="datum">
</div></td>
</tr>
<tr>
<td colspan="2" align="center">&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="uploaden" value="Uploaden" /></td>
</tr>
</form>
</table>
</center>


-- select_auteur.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
<?php

echo "
<tr>
<td>Auteur</td>
<td>
<select name=\"auteur\">"
;

$query = "SELECT * FROM auteurs order by naam ASC";
$resultaat = mysql_query($query) or die ("query mislukt");  
while ($obj = mysql_fetch_object($resultaat)){
echo "<option value=\"$obj->id\">$obj->naam ($obj->email)</option>\n";}

echo"</select>
</td>
</tr>"
;


?>


--select_categorie --

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
<?php
echo "
<tr>
<td>Categorie</td>
<td>
<select name=\"categorie\">"
;

$query = "SELECT * FROM foto_categorie order by id DESC";
$resultaat = mysql_query($query) or die ("query mislukt");  
while ($obj = mysql_fetch_object($resultaat)){
echo "<option value=\"$obj->id\">$obj->categ</option>\n";}

echo"</select>
</td>
</tr>"
;


?>
 
PHP hulp

PHP hulp

03/05/2024 19:36:33
 
Jan Koehoorn

Jan Koehoorn

25/08/2005 10:51:00
Quote Anchor link
Jan:
Ik probeer een aanpassing van een uploadscript te maken, waarbij de foto wordt geresized, upgeload naar een bepaalde map (afhankelijk van de categorie die je kiest) en waarbij de gegevens ook naar een database worden toegegevoegd.

De gegevens worden allemaal toegevoegd aan de database, maar de foto wordt niet aangepast en upgeload naar de juiste map.
Hieronder het script.

het probleem zit hem ergens in de (waarde van) $categorie vermoed ik, want zonder selectie van een map, werkt het wel.


Ik krijg volgende foutmelding:

Warning: imagecreatefromjpeg(../albumfotos//big_nieuw.jpg): failed to open stream: No such file or directory in /opt/www/web/site/admin/album/addpic.php on line 23


in die eerste foutmelding staat een dubbele slash, vlak voor big_nieuw.jpg
 
Jan

Jan

25/08/2005 20:16:00
Quote Anchor link
dat weet ik, normaal moet tussen die 2 // de waarde (map) van $categorie komen te staan, maar dat gebeurt dus niet.
 
- SanThe -

- SanThe -

25/08/2005 21:45:00
Quote Anchor link
De bekende vraag: Waar komt $categorie vandaan?
 
Jelmer -

Jelmer -

25/08/2005 23:47:00
Quote Anchor link
Misschein als je nou van $categorie eens $_POST['categorie'] maakte, dan heb je al een iets grotere kans van slagen.
 
Jan Koehoorn

Jan Koehoorn

26/08/2005 09:04:00
Quote Anchor link
Die SELECT tag voor het veld categorie doe je via een query zie ik. Als je kijkt in de HTML code van je pagina, staan de resultaatwaarden van je query dan ook inderdaad ingevuld?

dus:
<OPTION value="1">categorie1</OPTION>
<OPTION value="2">categorie2</OPTION>
<OPTION value="3">categorie3</OPTION>

Als er bij value niets staat, zit de fout in je query (misschien is 'categ' niet de juiste veldnaam)

Als er wel iets staat, dan weet je in ieder geval al dat je query correct is.
 
Jan

Jan

26/08/2005 12:00:00
Quote Anchor link
Jelmer:
Misschein als je nou van $categorie eens $_POST['categorie'] maakte, dan heb je al een iets grotere kans van slagen.


inderdaad dat werkte!
ik heb ook de "action" van het formulier moeten aanpassen, die
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $PHP_SELF; ?>

werkte niet, ik heb er dan maar "index2.php?content=album&actie=addpic" van gemaakt.
Ik heb dat laatste probleem nog gehad bij scripts, aan wat zou dat kunnen liggen?

THX,
jan
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.