Autor Zpráva
dejvos
Profil
Zdravím, mám problémy s funkcí ftp_put(). Vše proběhne zdánlivě v pořádku - data (obrázek .png) se zdánlivě v pořádku uloží na server. Soubor má stejnou velikost jako originál a dá se číst. Čtení nefunguje ovšem korektně ... systém ho vyhodnocuje jako NE obrázek. (Jako by byla poškozený hlavička png či podobně.)

Neví někdo z Vás kde by mohl být problém?

$result = array();                                                 
        $addr = ereg_replace(' ','_',$addr);                               
        $addr = ereg_replace('/','_',$addr);                               
        $cn = ftp_connect(self::RES_LIBRARY);                              
        //print_r($files);                                                 
        if(!$cn) return false;                                             
        if(!ftp_login($cn,self::FTP_USER,self::FTP_PSSWD)) return false;   

        foreach($files as $key => $f){    
            if($f['size'] == 0) continue; 
            if(!ftp_chdir($cn,self::FTP_ADDR)) {
                if(!ftp_mkdir($cn,self::FTP_ADDR)) return false;
                ftp_chdir($cn,self::FTP_ADDR);
            };


            if(!ftp_chdir($cn,self::FTP_ADDR.$addr)) {
                if(!ftp_mkdir($cn,self::FTP_ADDR.$addr)) return false;
                ftp_chdir($cn,self::FTP_ADDR.$addr);
            };

            $x = ftp_nlist($cn,self::FTP_ADDR.$addr);
            //var_dump($x);

            $ne = true;
            foreach($x as $y){
                $y = explode("/",$y);
                if($y[count($y)-1] == $f['name']) { $ne = false;break; };
            };

            $file_name = $f['name'];
            if(!$ne){
                $file_name = explode(".",$file_name,2);
                $file_name = $file_name[0].time().'.'.$file_name[1];
            };

            //echo file_get_contents($f['tmp_name']);
            //die();
            $res = ftp_put($cn,self::FTP_ADDR.$addr.'/'.$file_name,$f['tmp_name'],FTP_BINARY);
            //die();
            //var_dump($res);
            if(!$res) return false;

            //echo "dsadas";

            $result[] = $addr."/".$file_name;
        };
        ftp_close($cn);
dejvos
Profil
Ještě tedy doplnění:

Velikosti předlohy a souboru který stáhnu je různá ... stažený je o byte větší ...
dejvos
Profil
Řešení:

skript, který měl na starost stahování byl zakončen exit(0); ... proto ten byte nakonci ... exit; vyřešil můj problém....

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: