Autor Zpráva
SeparateSK
Profil
Dobrý deň,mám svoj upload script , ktorý je z dvoch stránok - tá s formulárom a tá na ktorej sa data spracuje.

stránka s formulárom:
<style>
    *{font-family:arial}
</style>
<span style="font-size:26px">Uprav obrázok</span>
<form method="post" enctype="multipart/form-data" action="rCol.php">
    <input type="file" name="obrazok"> MAX 768kB - PNG
    <input type="submit">
</form>
rCol.php:
<?php
$uri=$_FILES['obrazok']['tmp_name'];
$velkost=$_FILES['obrazok']['size'];
$typ=$_FILES['obrazok']['type'];
echo $uri;
//Spracovanie obrazku...
?>
Keď nahrám png súbor s velkostou 3,5 kB, prehliadač vypíše Error324 - ERR_EMPTY_RESPONSE, ale keď nahrám BMP obrázok s velkostou cca 234kB, tak script v pohode funguje, kde je chyba?
edit: chyba je zrejme na strane servera, lebo na localhoste to funguje 100%
Davex
Profil
Hádám, že bude chyba někde v //Spracovanie obrazku..., ale nevidíš jí, protože je vypnuté zobrazování chyb.
SeparateSK
Profil
v spracovani obrazku asi nebude chyba,lebo na localhoste to ide aj so spracovanim obrazka na 100%,ale na serveri,teda http://nieco.tld, uz vypisuje 324 error
Davex
Profil
Nevěřím. Je nepravděpodobné, že by u takto malého souboru byla chyba v samotném uploadu na serveru. Dělají to i jiné prohlížeče než Chrome?
SeparateSK
Profil
iba chrome dáva err324.
IE9, to síce nevypíše 324 error, ale $uri je prázdne.
IE8 vypíše: Nemôže zobraziť internetovú stránku.
Mozilla robí to isté,čo IE8
Ale zvláštne je ,že keď v oboch IE a Mozille nahrám JPG súbor ,tak $uri obsahuje aspoň /tmp/php a stránka zároveň zobrazuje chyby lebo úprava obrázku je určená pre PNG obrázky, ale pri nahratí PNG súboru, $uri neobsahuje nič
Davex
Profil
Co vypíše následující kód při neúspěšném pokusu?
var_dump($_FILES);
SeparateSK
Profil
samozrejme na chrome nič (array(0) { } )
na IE:
array(1) { ["obrazok"]=> array(5) { ["name"]=> string(8) "ahoj.PNG" ["type"]=> string(11) "image/x-png" ["tmp_name"]=> string(14) "/tmp/phpVs5elB" ["error"]=> int(0) ["size"]=> int(1721) } }

Celý script súboru rCol.php:
<?php
$uri=$_FILES['obrazok']['tmp_name'];
$velkost=$_FILES['obrazok']['size'];
$typ=$_FILES['obrazok']['type'];
//var_dump($_FILES); 

if($velkost<(768*1024)){
    Header("Content-type: image/png");
        $obr="$uri";
        $img= imagecreatefrompng($obr);
        $w=imagesx($img);
        $h=imagesy($img);
        for($x=0;$x<=$w;$x++){
            for($y=0;$y<=$h;$y++){
                $rgb = imagecolorat($img, $x,$y);
                $r = ($rgb >> 16) & 0xFF;
                $g = ($rgb >> 8) & 0xFF;
                $b = $rgb & 0xFF;
                $spolu=$r+$g+$b;
                $nc=round($spolu/3,0);
                if($nc<128)$nc=0; else $nc=255;
                $nr=$nc;
                $ng=$nc;
                $nb=$nc;    
                $col=imagecolorallocate($img,$nr,$ng,$nb);
                imagesetpixel($img,$x,$y,$col);
            }
        }
        imagepng($img);
    } else { echo "Obrázok musí mať menej ako 768kB (".(768*1024)."bajtov), váš obrázok má ".$velkost." bajtov, typ: $typ";}
?>
má to za úlohu filtrovať farby, teda farby ktoré sú bledšie nahradiť bielou a tmavšie farby nahradiť čiernou
Davex
Profil
SeparateSK:
samozrejme na chrome nič (array(0) { } )
Vypadá to stejně, jakoby v kódu formuláře chybělo enctype="multipart/form-data". Není v Chrome nakešovaná nějaká starší verze stránky s formulářem?
SeparateSK
Profil
Davex:
Není v Chrome nakešovaná nějaká starší verze stránky s formulářem?
absolutne nič,jedine tá funkčná z localhostu.
Vzdávam to,toto sa asi len tak nerozluští, radšej budem uploadovať JPEG (stačí v scripte nahradiť imagepng s imagejpeg), lebo pri JPEG nevypisuje žiadne errory a všetko funguje ako má.
I tak ďakujem za pomoc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: