| 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: 6 let
|
|||
0