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 |
#2 · Zasláno: 22. 7. 2019, 16:00:29
Zkus to trochu blíž definovat, úplně nevím v jaké situaci se mám orientovat.
|
||
Daniel47 Profil |
#3 · Zasláno: 22. 7. 2019, 16:39:22
Ikki:
Po nahrání souboru na server potřebují vypsat příponu souboru. |
||
RastyAmateur Profil |
#4 · Zasláno: 22. 7. 2019, 17:06:47
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 |
#7 · Zasláno: 23. 7. 2019, 14:55:04
Taps:
Já nechci aby soubor jmenoval: fotka.png, ale aby se jmenovala 7183838284828.png Když budu fotku nahrávat na server. |
||
blaaablaaa Profil |
#8 · Zasláno: 23. 7. 2019, 15:25:01
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 |
#10 · Zasláno: 24. 7. 2019, 06:08:58
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. |
||
Časová prodleva: 5 let
|
0