Autor Zpráva
Daniel47
Profil
Ahojte, potřebují vypsat koncovku souboru při nahrávání souboru na server.


Takhle to potřebují:

<?php
//Nějaký kód pro vypsání souboru
echo($koncovka-souboru);
?>

Budu rád za radu!
Ikki
Profil
Zkus to trochu blíž definovat, úplně nevím v jaké situaci se mám orientovat.
Daniel47
Profil
Ikki:
Po nahrání souboru na server potřebují vypsat příponu souboru.
RastyAmateur
Profil
Daniel47:
Zkoušel jsi hledat? Z googlu mi pomohl první odkaz, který mě navedl do dokumentace na funkci pathinfo().

Případně sis mohl poradit i jinak. Koncovka souboru je většinou to poslední za tečkou, že? Podle toho by šlo nějaké řešení také vytvořit
Daniel47
Profil
Ahojte, chci aby pří nahrávání obrázku na server tak ať se přejmenuje.
Ale jak si to nefunguje.
Kód zde:

<?php
if(isset($_POST['g-recaptcha-response'])) {
$recaptcha = json_decode(file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=6Ld3m5MUAAAAAOMD8DzZ0y9MIK4a8A5byIa4uimH&response=' . $_POST['g-recaptcha-response'])); 
if($recaptcha->{'success'} == 'true') { 
echo ('<center><b class="lista-green">Výborně!  Nejste spamovací robot a máte zaškrtlou recaptchu.</b></center>');
if(isset($_FILES['image_'])) { 
    $imagesCount = count($_FILES['image_']['name']);                                                                                   
    for ($i = 0; $i < $imagesCount; $i++) { 
      if (!in_array(strtolower(pathinfo($_FILES['image_']['name'][$i], PATHINFO_EXTENSION)), ["jpg", "jpeg", "png", "gif"])) {
            echo ('<center><b class="lista-red">Soubor ' . htmlspecialchars($_FILES['image_']['name'][$i], ENT_QUOTES) . ' není vybrán nebo soubor nemá podporovanou koncovku. (Podporované koncovky: .jpg, .jpeg, .png, .gif)</b></center><br>');
            continue;
        } 

 if(!empty(trim($_POST['autor'])) && !empty(trim($_POST['nazev'])) && !empty(trim($_POST['popis']))) {       
  if(move_uploaded_file($_FILES['image_']['tmp_name'][$i], 'verejne-fotky/' . $_FILES['image_']['name'][$i])) {
$autor = $_POST['autor']; 
$nazev = $_POST['nazev'];
$popis = $_POST['popis']; 
 
$autor = str_replace("<","#", $autor); 
$autor = str_replace(">","#", $autor); 
$autor = str_replace('"',"^", $autor); 
$autor = substr($autor, 0, 22);

$nazev = str_replace("<","#", $nazev); 
$nazev = str_replace(">","#", $nazev); 
$nazev = str_replace('"',"^", $nazev); 
$nazev = substr($nazev, 0, 36);

$popis = str_replace("<","#", $popis); 
$popis = str_replace(">","#", $popis); 
$popis = str_replace('"',"^", $popis); 
$popis = substr($popis, 0, 168); 
            $datum = Date("j/m/Y - - H:i:s", Time());                                                       
 
            file_put_contents("data-verejne-fotky.inc", '<dd><img width="532px" height="320px" src="/verejne-fotky/'.rawurlencode($g_number + "." + $pripona).'" alt="Veřejně nahrané fotky" /><br /><b>'.$autor.': '.$datum.' </b><br /><div class="ram-1"><center><h2>'.$nazev.'</h2><p>'.$popis.'</p><a href="/verejne-fotky/'.rawurlencode($g_number + "." + $pripona).'"><b>Stáhnout fotku</b></a></center></div></p></dd><hr size="5px" color="blue">'.file_get_contents("data-verejne-fotky.inc"));
echo ('<center><b class="lista-green">Fotka byla úspěšně nahrána na server. Moc děkujeme za fotku!</b></center>');
$info_one = $_SERVER['REMOTE_ADDR'];
$info_two = $_SERVER['HTTP_USER_AGENT']; 
$info_three = $_SERVER["GEOIP_COUNTRY_NAME"];                                                                                                                                             
 $info_uzivatel = 'Type web: [fotky] - - - Name: ['.$autor.'] - - - Date sent: ['.$datum.'] - - - IP address: ['.$info_one.'] - - - Computer info: ['.$info_two.'] - - - Country : ['.$info_three.']';
$hlavicka = 'From:' . 'dettube.wz.cz@email.cz'; 
$hlavicka .= "\nMIME-Version: 1.0\n";  
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = 'dettube.wz.cz@email.cz'; 
$predmet = 'New on the web';  
$uspech = mb_send_mail($adresa, $predmet, $info_uzivatel, $hlavicka);     
 $one_g_n = mt_rand(1, 100);
 $two_g_n = mt_rand(1, 100);
 $three_g_n = mt_rand(1, 100);
 $four_g_n = mt_rand(1, 100); 
 $five_g_n = mt_rand(1, 100);
 $g_number = $one_g_n + $two_g_n + $three_g_n + $four_g_n + $five_g_n;
$pripona = strtolower(substr($_FILES['image_']['name'][$i],strrpos($_FILES['image_']['name'][$i],'.') + 1));
rename($_FILES['image_']['name'][$i], $g_number + "." + $pripona);
   } else { 
            echo ('<center><b class="lista-red">Soubor ' . htmlspecialchars($_FILES['image_']['name'][$i], ENT_QUOTES) . ' se nepodařilo nahrát.</b></center><br>');
                      }
         } else {
echo('<center><b style="width: 92%;" class="lista-red">Nemáte všechny políčka vyplněné! Prosíme vyplňte je.</b></center>');
                     }
              }
        } 
   } else {
echo('<center><b class="lista-red">Asi nemáte zaškrtlou recaptchu nebo jste spamovácí robot!</b></center>');
      }
   }  
?>
 
Taps
Profil
RastyAmateur:
Případně sis mohl poradit i jinak. Koncovka souboru je většinou to poslední za tečkou, že? Podle toho by šlo nějaké řešení také vytvořit
Ale na toto bych moc nespoléhal.


Daniel47:
a jak ho chceš přejmenovat? Ve funkci move_uploaded_file ukládáš soubor pod názvem, pod kterým je nahráván na server
Daniel47
Profil
Taps:
Já nechci aby soubor jmenoval: fotka.png, ale aby se jmenovala 7183838284828.png
Když budu fotku nahrávat na server.
blaaablaaa
Profil
Daniel47:
To zjišťování přípony a generování čísla si dej před tu podmínku a pak:
if(move_uploaded_file($_FILES['image_']['tmp_name'][$i], 'verejne-fotky/' . $g_number . "." . $pripona))

Ale není to dobré řešení, co se třeba stane, když už soubor bude existovat?
Daniel47
Profil
blaaablaaa:
Pravděpodobně se to nestane.
Odkaz na obrázek:
www.dettube.wz.cz/img/zdarma-verejne-fotky/828061583-271960152-159340243-531534130-693679499.jpeg
Jak vidíš obrázek je pojmenován 5 číslicemi.

Jinak moc díky za radu.
RastyAmateur
Profil
Daniel47:
Není špatné to pojmenovat nějakým náhodným řetězcem, jako to teď děláš ty (klidně kratším) a ještě do toho zakomponovat aktuální datum a čas, případně rovnou timestamp. Máš to pak jistější, že ani v budoucnosti nenastane žádná situace, kdy by se vygeneroval existující název a navíc máš v názvu toho obrázku alespoň nějakou informaci, kterou jednou můžeš třeba použít.
Daniel47
Profil
RastyAmateur:
Díky, udělá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:

0