Afbeelding uploaden/renamen
Beste,
Ik probeer een afbeelding op te slaan en dan de naam te veranderen naar het id van het nieuwsbericht waar het bij hoort.
maar nu stuit ik op een aantal problemen,
het renamen lukt me niet..
en als het dan gerenamed is, hoe kan ik het dan weer aanroepen?
ik kan wel doen src=$id.jpg
maar wat nou als het png of gif is? want ik wil die extensies ook graag toestaan..
het uploaden van de file zelf lukt me wel..
het gaat nu dus vooral om het aanroepen en hernoemen.
kan iemand me hierbij helpen?
alvast bedankt,
mvg Jason
Toevoeging op 11/04/2011 17:21:08:
ik werk met dit script:
http://www.phphulp.nl/php/script/data-verwerking/image-upload-functie/1095/imageuploadfunctie/811/
Ik probeer een afbeelding op te slaan en dan de naam te veranderen naar het id van het nieuwsbericht waar het bij hoort.
maar nu stuit ik op een aantal problemen,
het renamen lukt me niet..
en als het dan gerenamed is, hoe kan ik het dan weer aanroepen?
ik kan wel doen src=$id.jpg
maar wat nou als het png of gif is? want ik wil die extensies ook graag toestaan..
het uploaden van de file zelf lukt me wel..
het gaat nu dus vooral om het aanroepen en hernoemen.
kan iemand me hierbij helpen?
alvast bedankt,
mvg Jason
Toevoeging op 11/04/2011 17:21:08:
ik werk met dit script:
http://www.phphulp.nl/php/script/data-verwerking/image-upload-functie/1095/imageuploadfunctie/811/
Hallo Jason,
Voor het renamen heb ik geen oplossing,
maar om erachter te komen of je .jpg .gif of .png moet gebruiken,
kan je dit doen:
Voor het renamen heb ik geen oplossing,
maar om erachter te komen of je .jpg .gif of .png moet gebruiken,
kan je dit doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$id = $_GET['id'];
$file1 = "images/$id.jpg";
$file2 = "images/$id.png";
$file3 = "images/$id.gif";
if(file_exists($file1))
{
echo"<img src='$id.jpg' alt=''/>";
}
else if(file_exists($file2))
{
echo"<img src='$id.png' alt=''/>";
}
else if(file_exists($file3))
{
echo"<img src='$id.gif' alt=''/>";
}
else {
echo"<img src='standaardfoto.jpg' alt=''/>";
}
?>
$id = $_GET['id'];
$file1 = "images/$id.jpg";
$file2 = "images/$id.png";
$file3 = "images/$id.gif";
if(file_exists($file1))
{
echo"<img src='$id.jpg' alt=''/>";
}
else if(file_exists($file2))
{
echo"<img src='$id.png' alt=''/>";
}
else if(file_exists($file3))
{
echo"<img src='$id.gif' alt=''/>";
}
else {
echo"<img src='standaardfoto.jpg' alt=''/>";
}
?>
Gewijzigd op 11/04/2011 21:32:57 door Sander A
Hallo Sander,
Bedankt voor de goeie tip! zo kan ik ook een standaard foto instellen :)
ik kende de file_exists() regel nog niet!
nu moet ik alleen de upload nog kunnen renamen naar het $id,
Weet iemand daar raad mee?
Ik neem aan dat het ergens in dit stukje code moet gebeuren:
Hier word namelijk veel met $file_name gewerkt enzo..
Bedankt voor de goeie tip! zo kan ik ook een standaard foto instellen :)
ik kende de file_exists() regel nog niet!
nu moet ik alleen de upload nog kunnen renamen naar het $id,
Weet iemand daar raad mee?
Ik neem aan dat het ergens in dit stukje code moet gebeuren:
Code (php)
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
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
if(is_uploaded_file($file["tmp_name"]))
{
list($x, $y, $image_type) = getimagesize($file["tmp_name"]);
list($gx, $gy, $ctype) = $sizes;
$split_name = explode(".", $file["name"]);
$file_name = $file["name"];
if((($sizes == NULL) || (($ctype == MAX_SIZE) && (($x <= $gx) && ($y <= $gy))) || (($ctype == MIN_SIZE) && (($x >= $gx) && ($y >= $gy))) || (($ctype == EXACT_SIZE) && (($x == $gx) && ($y == $gy)))) && (($allowed_types == NULL) || (array_search($image_type, $allowed_types, true) !== false)) && (($allowed_ext == NULL) || (array_search(strtolower($split_name[count($split_name) - 1]), $allowed_ext) !== false)))
{
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
while(file_exists($to_url . $file_name))
{
$split_name[0] = $split_name[0] . $pattern{ rand(0, 35) };
$file_name = implode(".", $split_name);
}
move_uploaded_file($file["tmp_name"], ($to_url . $file_name));
return $file_name;
{
list($x, $y, $image_type) = getimagesize($file["tmp_name"]);
list($gx, $gy, $ctype) = $sizes;
$split_name = explode(".", $file["name"]);
$file_name = $file["name"];
if((($sizes == NULL) || (($ctype == MAX_SIZE) && (($x <= $gx) && ($y <= $gy))) || (($ctype == MIN_SIZE) && (($x >= $gx) && ($y >= $gy))) || (($ctype == EXACT_SIZE) && (($x == $gx) && ($y == $gy)))) && (($allowed_types == NULL) || (array_search($image_type, $allowed_types, true) !== false)) && (($allowed_ext == NULL) || (array_search(strtolower($split_name[count($split_name) - 1]), $allowed_ext) !== false)))
{
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
while(file_exists($to_url . $file_name))
{
$split_name[0] = $split_name[0] . $pattern{ rand(0, 35) };
$file_name = implode(".", $split_name);
}
move_uploaded_file($file["tmp_name"], ($to_url . $file_name));
return $file_name;
Hier word namelijk veel met $file_name gewerkt enzo..
Gewijzigd op 11/04/2011 21:42:09 door Jason van der Zeeuw
@sander typisch een voorbeeld hoe het NIET moet
Variabelen binnen de quotes en onnodig variabelen aanmaken beide hartstikke fout
Variabelen binnen de quotes en onnodig variabelen aanmaken beide hartstikke fout
@ Jordi, hoe moet het dan wel :$?
move_uploaded_file($file["tmp_name"], ($to_url . $file_name));
$to_url.$file_name = je nieuwe bestandsnaam. Daar kun je dus wijzigingen in toepassen.
Als alleen jij toegang hebt tot de upload (en er dus geen extreme beveiliging nodig is) kun je gewoon dit doen:
$to_url.$file_name = je nieuwe bestandsnaam. Daar kun je dus wijzigingen in toepassen.
Als alleen jij toegang hebt tot de upload (en er dus geen extreme beveiliging nodig is) kun je gewoon dit doen:




