Разрешение за качване и на други формати изображение.

  • Автор Автор Anonymous
  • Начална дата Начална дата
A

Anonymous

Guest
Как мога да разреша на заявката да дава да се качват bmp, png, jpeg, jpg. Това е с воден знак, пробвах като сложих форматите, но ерори отвсякъде.

Код:

PHP:
<?php
$target = "tmp/"; //Директорията за качване
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
//Това е ограничението ни за размер
if ($_FILES['uploaded']['size'] > 3500000) //3.33786011 мегабайта
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
exit;
}
//Това е ограничението за вид на файла //
$ext = array('jpg','jpeg');
$extnafaila = end(explode('.',$_FILES['uploaded']['name']));
$extnafaila = strtolower($extnafaila);
if(!in_array($extnafaila,$ext)){
echo "Можете да качвате само файлове jpg и jpeg.";
$ok=0;
exit;
}
//Проверка дали файл със същото име вече не съществува в директорията

$fn = basename( $_FILES['uploaded']['name']);

$name_arr = explode('.',$fn); //

$failime = "./tmp/$name_arr[0].png";

if (file_exists($failime)) {
echo "Файлът $filename съществува.<br>";
$ok=0;
exit;
} else {
echo "";
}
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Не стана";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "";

}
else
{
echo "Не стана 2"; //тук показва грешка ако файла не е качен правилно
exit;
}
}

//$fn = basename( $_FILES['uploaded']['name']); след редакция - зададени са по-нагоре

//$name_arr = explode('.',$fn); //махаме разширението jpg на оригиналния файл, изх. картинка е png - след редакция е зададено при проверката за съществуване

$kade = "./tmp/$name_arr[0].png";

$Watermark = imagecreatefrompng("watermark.png"); //тук си задаваде файла които е водния знак, png

$putq = "tmp/".basename( $_FILES['uploaded']['name']). "";

$Image = imagecreatefromjpeg("$putq");


imagecolortransparent($Watermark,imagecolorat($Watermark,0,0));


$PosX = imagesx($Image)-imagesx($Watermark)-5;
$PosY = imagesy($Image)-imagesy($Watermark)-5;
imagecopymerge($Image,$Watermark,$PosX,$PosY,0,0,imagesx($Watermark),imagesy($Watermark),100);


imagepng($Image, $kade);

if (unlink("tmp/$fn")) {
echo "<br />";
} else {
echo "";
}

echo "Готово! След одобрение на картинката, ще получиш доларите си!";

?>
 
<?php
$target = "tmp/"; //Директорията за качване
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
//Това е ограничението ни за размер
if ($_FILES['uploaded']['size'] > 3500000) //3.33786011 мегабайта
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
exit;
}
//Това е ограничението за вид на файла //
$ext = array('jpg','jpeg','bmp','png');
$extnafaila = end(explode('.',$_FILES['uploaded']['name']));
$extnafaila = strtolower($extnafaila);
if(!in_array($extnafaila,$ext)){
echo "Можете да качвате само файлове png,bmp,jpg и jpeg.";
$ok=0;
exit;
}
//Проверка дали файл със същото име вече не съществува в директорията

$fn = basename( $_FILES['uploaded']['name']);

$name_arr = explode('.',$fn); //

$failime = "./tmp/$name_arr[0].png";

if (file_exists($failime)) {
echo "Файлът $filename съществува.<br>";
$ok=0;
exit;
} else {
echo "";
}
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Не стана";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "";

}
else
{
echo "Не стана 2"; //тук показва грешка ако файла не е качен правилно
exit;
}
}

//$fn = basename( $_FILES['uploaded']['name']); след редакция - зададени са по-нагоре

//$name_arr = explode('.',$fn); //махаме разширението jpg на оригиналния файл, изх. картинка е png - след редакция е зададено при проверката за съществуване

$kade = "./tmp/$name_arr[0].png";

$Watermark = imagecreatefrompng("watermark.png"); //тук си задаваде файла които е водния знак, png

$putq = "tmp/".basename( $_FILES['uploaded']['name']). "";

$Image = imagecreatefromjpeg("$putq");


imagecolortransparent($Watermark,imagecolorat($Watermark,0,0));


$PosX = imagesx($Image)-imagesx($Watermark)-5;
$PosY = imagesy($Image)-imagesy($Watermark)-5;
imagecopymerge($Image,$Watermark,$PosX,$PosY,0,0,imagesx($Watermark),imagesy($Watermark),100);


imagepng($Image, $kade);

if (unlink("tmp/$fn")) {
echo "<br />";
} else {
echo "";
}

echo "Готово! След одобрение на картинката, ще получиш доларите си!";

?>
 
Вече казах, че пробвах като добавя форматите, но излиза грешка!
 
nfarkt каза:
Вече казах, че пробвах като добавя форматите, но излиза грешка!
Трудно ще го направиш.. Кажи какви формати точно искаш да има :idea:
 
Ако е възможно всички формати за изображение, ако не може:
- png, bmp, jpeg, jpg

Желателно е и .gif, но ако не може, живо по здраво.
 
PHP:
<?php
$target = "tmp/"; //Директорията за качване
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
//Това е ограничението ни за размер
if ($_FILES['uploaded']['size'] > 3500000) //3.33786011 мегабайта
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
exit;
}
//Това е ограничението за вид на файла //
$ext = array('jpg','jpeg','png','bmp','gif');
$extnafaila = end(explode('.',$_FILES['uploaded']['name']));
$extnafaila = strtolower($extnafaila);
if(!in_array($extnafaila,$ext)){
echo "Можете да качвате само файлове jpg,jpeg,png,bmp и gif.";
$ok=0;
exit;
}
//Проверка дали файл със същото име вече не съществува в директорията

$fn = basename( $_FILES['uploaded']['name']);

$name_arr = explode('.',$fn); //

$failime = "./tmp/$name_arr[0].png";

if (file_exists($failime)) {
echo "Файлът $filename съществува.<br>";
$ok=0;
exit;
} else {
echo "";
}
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Не стана";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "";

}
else
{
echo "Не стана 2"; //тук показва грешка ако файла не е качен правилно
exit;
}
}

//$fn = basename( $_FILES['uploaded']['name']); след редакция - зададени са по-нагоре

//$name_arr = explode('.',$fn); //махаме разширението jpg на оригиналния файл, изх. картинка е png - след редакция е зададено при проверката за съществуване

$kade = "./tmp/$name_arr[0].png";

$Watermark = imagecreatefrompng("watermark.png"); //тук си задаваде файла които е водния знак, png

$putq = "tmp/".basename( $_FILES['uploaded']['name']). "";

if ($extnafaila == "jpg" || $extnafaila = "jpeg")
{
$Image = imagecreatefromjpeg("$putq");
}
else if ($extnafaila == "gif")
{
$Image = imagecreatefromgif("$putq");
}
else if ($extnafaila == "png")
{
$Image = imagecreatefrompng("$putq");
}
else if ($extnafaila == "bmp")
{
$Image = imagecreatefrombmp("$putq");
}


imagecolortransparent($Watermark,imagecolorat($Watermark,0,0));


$PosX = imagesx($Image)-imagesx($Watermark)-5;
$PosY = imagesy($Image)-imagesy($Watermark)-5;
imagecopymerge($Image,$Watermark,$PosX,$PosY,0,0,imagesx($Watermark),imagesy($Watermark),100);


imagepng($Image, $kade);

if (unlink("tmp/$fn")) {
echo "<br />";
} else {
echo "";
}

echo "Готово! След одобрение на картинката, ще получиш доларите си!";

?>
 
Веднага щом отворя страницата изписва Можете да качвате само файлове jpg,jpeg,png,bmp и gif.
 
nfarkt каза:
Веднага щом отворя страницата изписва Можете да качвате само файлове jpg,jpeg,png,bmp и gif.
Е преди не беше ли така? Аз, защото никъде не виждам проверка аз натиснат бутон..
 
То грешката очите ше ми извади, ама няма да я намеря. Сложих си форма, и заявка, обаче, когато кача .gif да речем, следват следните грешки:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /home/grabnieu/public_html/funnybg.net/image_add.php on line 115

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'snimki/.png' is not a valid JPEG file in /home/grabnieu/public_html/funnybg.net/image_add.php on line 115

Warning: imagesx(): supplied argument is not a valid Image resource in /home/grabnieu/public_html/funnybg.net/image_add.php on line 134

Warning: imagesy(): supplied argument is not a valid Image resource in /home/grabnieu/public_html/funnybg.net/image_add.php on line 135

Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/grabnieu/public_html/funnybg.net/image_add.php on line 136

Warning: imagepng(): supplied argument is not a valid Image resource in /home/grabnieu/public_html/funnybg.net/image_add.php on line 139
 

Back
Горе