Autor Zpráva
jrw
Profil
Mám tento script, nahrává soubor na server vytvoří (aspoň by měl) proměnnou obrázek pomocí funkce imagecreatefromjpeg() a potom ten soubor zase smaže. Problém je že se mi nedaří vytvořit tu proměnnou. Nevíte kde je chyba?

Díky


<?php

$soubor = $_FILES['soubor']['tmp_name'];
$soubor_name = $_FILES['soubor']['name'];
$soubor_size = $_FILES['soubor']['size'];
$soubor_type = $_FILES['soubor']['type'];
$soubor_error = $_FILES['soubor']['error'];

$upfile = "img/" . $soubor_name;

if(!move_uploaded_file($soubor, $upfile)){
echo "Soubor se nedá přemístit!<br />";
}
else{
echo "Soubor je tam!<br />";
}

$cesta_dir = 'img/';
$dir = opendir($cesta_dir);

while( $s = readdir($dir) ){

if($s != '.' && $s != '..'){

$fotka = $s;
$file_cesta = 'img/' . $fotka;
}
}

// Vytvoření proměnné obrázek
$file_cesta = 'img/' . $fotka . "<br />";

//$chyba = mysql_error();
$ima = imagecreatefromjpeg($file_cesta);

$chyba = mysql_error();
echo "Chyba: " . $chyba;

if(!$ima){
echo "Nepodařilo se vytvořit proměnnou obrázek.<br />";
}

imagejpeg($ima, 'novy.jpg');

closedir($dir);


$cesta_dir = 'img/';
$dir = opendir($cesta_dir);

while( $s = readdir($dir) ){

if($s != '.' && $s != '..'){

$fotka = $s;
//echo "Výpis z adresáře: " . $s . '<br />';
//echo "Cesta do adresáře: " . $file_cesta = 'img/' . $fotka . "<br />";

}
}
if(unlink('img/' . $fotka)){
echo "Mazání se povedlo!<br />";
}
closedir($dir);

?>
Jan Tvrdík
Profil
asi mu vadí to <br />:
$file_cesta = 'img/' . $fotka . "<br />"; - blbost
$file_cesta = 'img/' . $fotka; - je správně
nightfish
Profil
$file_cesta = 'img/' . $fotka . "<br />";


//$chyba = mysql_error();
$ima = imagecreatefromjpeg($file_cesta);

$chyba = mysql_error();
echo "Chyba: " . $chyba;


to mysql_error() je tam nadbytečné... (ale to jen tak na okraj)
jinak předpokladám, že ti PHP vypíše nějakou chybu... můžeš se s námi o ni podělit
jrw
Profil
Jan Tvrdík
To je pravda ale, jenže když jsem to vyhodil tak to z nějakého důvodu nefungovalo vůbec.

nightfish
mysql_error() nahlásilo: Nepodařilo se vytvořit proměnnou obrázek.
nightfish
Profil
$chyba = mysql_error();
echo "Chyba: " . $chyba;

if(!$ima){
echo "Nepodařilo se vytvořit proměnnou obrázek.<br />";
}

Nepodařilo se vytvořit proměnnou obrázek.
tohle nahlásí ten if, ne to mysql_error() (však si to zakomentuj, uvidíš)
jrw
Profil
Aha, to mě nenapado, hleděl jsem do toho tak dlouho že už v tom mám hokej. Bohužel teď nebudu moct reagovat, zítra jedu na dva dni na hory a dostanu se k počítači až v sobotu a potřebuju se trochu prospat protože jsem nějaký nachlazený. Pokud vás ale napadne kde je chyba budu rád a o víkendu se na to určitě podívám.
Jan Tvrdík
Profil
Já pořád nechápu, co tu nefunguje - mně funguje vše jak asi má. Nechápu sice logický postup skriptu. Hlavně to, proč se tam nahraje dvakrát, ale jinak OK:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php

$soubor = $_FILES['soubor']['tmp_name'];
$soubor_name = $_FILES['soubor']['name'];
$soubor_size = $_FILES['soubor']['size'];
$soubor_type = $_FILES['soubor']['type'];
$soubor_error = $_FILES['soubor']['error'];

$upfile = "img/" . $soubor_name;

if(!move_uploaded_file($soubor, $upfile))
{
echo "Soubor se nedá přemístit!<br />";
}
else
{
echo "Soubor je tam!<br />";
}

$cesta_dir = 'img/';
$dir = opendir($cesta_dir);

while( $s = readdir($dir) )
{
if($s != '.' && $s != '..')
{
$fotka = $s;
}
}

// Vytvoření proměnné obrázek
$file_cesta = 'img/' . $fotka; //Už tu není to ******* br :-)

$ima = imagecreatefromjpeg($file_cesta);


if(!$ima){
echo "Nepodařilo se vytvořit proměnnou obrázek.<br />";
}

imagejpeg($ima, 'novy.jpg');

closedir($dir);


$cesta_dir = 'img/';
$dir = opendir($cesta_dir);

while( $s = readdir($dir) ){

if($s != '.' && $s != '..'){

$fotka = $s;
echo "Výpis z adresáře: " . $s . '<br />';
echo "Cesta do adresáře: " . $file_cesta = 'img/' . $fotka . "<br />";

}
}
/*if(unlink('img/' . $fotka)){
echo "Mazání se povedlo!<br />";
}*/
closedir($dir);

?>
</body>
</html>
jrw
Profil
Mě to na počítači taky funguje ale když to nahraju na web tak se to zasekne u imagecreatefromjpeg().
Jan Tvrdík
Profil
asi maj pomalý stroje :'-(
jrw
Profil
No je to bezva ale funguje to pořád stejně. Na počítači to jede bez chyby a na webu to nefunguje. Abych to vysvětlil, jde mi o to nahrát soubor na web, tady se uloži do dočasného adresáře odtud ho musím přemístít (move_uploaded_file) do adresáře na mém webu a pak teprve použít funkci imagecreatefromjpeg() a imagejpeg() pomocí které soubor (fotku) překopíruju jinam nebo s ní můžu dál pracovat. No a tady mám problém protože to nefunguje. Asi to bude něco v nastavení servru (jsem na českém hostingu) co tomu brání. Ale nenapadá mě nic čím by to mohlo být.
jrw
Profil
Možná je to tím blížícím se prodlouženým víkendem.
Alphard
Profil
jde mi o to nahrát soubor na web, tady se uloži do dočasného adresáře odtud ho musím přemístít (move_uploaded_file) do adresáře na mém webu a pak teprve použít funkci imagecreatefromjpeg() a imagejpeg() pomocí které soubor (fotku) překopíruju jinam nebo s ní můžu dál pracovat

IMHO zkus to rozkouskovat pro nalezení chyby:
nahraj soubor a manuálně zkontroluj, jestli tam je,
a 100% nahraný soubor zkus upravit

Pozn: cely jsem nečetl, tak se omlouvam, jestli jsem Off topic
jrw
Profil
Jo soubor tam je.
Jan Tvrdík
Profil
Možná je nějakej problém s GD knihovnou.
jrw
Profil
Jo soubor tam je.

Asi nějaká chybka, chtěl jsem to napsat jen jednou.
jrw
Profil
No jo ale jaký. Jako že by tam vůbec nebyla? Nebo je nastavená tak že to v tomto případě nefunguje? A když ano tak v jakém případě to bude fungovat.
jrw
Profil
GD knihovna tam je. Je to verze: 2.0.28 (bundled)
jrw
Profil
No nic, jdu si doléčit chřipku nebo co to je, protože zítra už to nestihnu. Dostanu se k tomu, jak už jsem tady psal zase v sobotu. Díky předem za dobrou radu.
Toto téma je uzamčeno. Odpověď nelze zaslat.