Portál AbcLinuxu, 6. května 2025 15:52

Dotaz: PHP skript pro upload souboru na server a prejmenovani souboru

otasomil avatar 23.3.2011 16:12 otasomil | skóre: 39 | blog: puppylinux
PHP skript pro upload souboru na server a prejmenovani souboru
Přečteno: 3014×
Odpovědět | Admin

Prosim moc php guru i ostatni o radicku.

 

Mam tu kousek php kodu jenz slouzi k uploadu souboru na web a dumam kterak zaridit prejmenovani uploadovaneho souboru na:

 

originalni nazev_rok-mesic-den_hodina-minuta-sekunda.pripona originalniho souboru

 

socasny kod prejmenuje na: rok-mesic-den_hodina-minuta-sekunda.pripona originalniho souboru

viz zde:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
<head>
<title>Upload souborů na server - odpověď</title>
<meta http-equiv="content-language" content="cs" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />    
<meta name="" content="" />
</head>
<body>
<div style="text-align: center;">

<?php

$nazev = date("Y-m-d_H-i-s");

if (is_uploaded_file($_FILES['file']['tmp_name'])){

$kon = explode('.',$_FILES['file']['name']);
$kon = $kon[count($kon)-1];

move_uploaded_file($_FILES['file']['tmp_name'], "files/" . $nazev . "." . $kon);
echo 'Soubor byl úspěšně nahrán na server.';
}else{
echo 'Při uploadu došlo k chybě.... vybrali jste vůbec nějaký soubor ?';
}
?>
<br><br>
<a href="index.php">Uploadovat další soubor</a>
<br><br>
<a href="files/">Zobrazit výpis uploadovaných souborů</a>

</body>
</html>


Za radu ci vlozeni upraveneho kodu moc dekuji.

            
K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (otasomil (tazatel))
23.3.2011 17:02 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: PHP skript pro upload souboru na server a prejmenovani souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle tvého zadání asi nějak takto, ale je to obrovská bezpečnostní díra!. Jednak původní jméno souboru pochází od uživatele, a tedy může obsahovat cokoliv (lomítka, tečky,... => může nakonec skončit někde úplně jinde ve FS). Druhak vůbec nekontroluješ, jaké soubory se na server nahrávají, takže ti tam kdokoliv může hodit třeba PHP skript dumpující jiné skripty či databáze. To jen tak pro začátek...
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
	$original = $_FILES['file']['name'];
	$name = sprintf('%s_%s.%s', $original, date('Y-m-d_H-i-s'), pathinfo($original, PATHINFO_EXTENSION)); 
	move_uploaded_file($_FILES['file']['tmp_name'], "files/$name"); 
	echo 'Soubor byl úspěšně nahrán na server.'; 
}
else{ 
	echo 'Při uploadu došlo k chybě.... vybrali jste vůbec nějaký soubor ?'; 
}
otasomil avatar 23.3.2011 19:18 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: PHP skript pro upload souboru na server a prejmenovani souboru

Dekuji Pane mnohokrate. Funguje to dle mych predstav. Viz vypis adresare.

Vami uvedenych rizik jsem si vedom. Upload bude prevazne pro moje osobni vyuziti s pristupem pod loginem skrze nastaveni v .htaccess.

Pro zajemce hotova verze zde:

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý
Řešení 1× (otasomil (tazatel))
23.3.2011 17:08 voda | skóre: 28
Rozbalit Rozbalit vše Re: PHP skript pro upload souboru na server a prejmenovani souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Originální jméno souboru je v $_FILES['file']['name'], takže ho stačí přidat:
move_uploaded_file($_FILES['file']['tmp_name'], "files/" . $_FILES['file']['name'] . $nazev . "." . $kon); Ale ještě by bylo asi vhodné odstranit z názvu nechtěné znaky.
23.3.2011 18:26 l4m4
Rozbalit Rozbalit vše Re: PHP skript pro upload souboru na server a prejmenovani souboru
A ještě vhodnější ponechat pouze rozumné znaky.
otasomil avatar 23.3.2011 19:19 otasomil | skóre: 39 | blog: puppylinux
Rozbalit Rozbalit vše Re: PHP skript pro upload souboru na server a prejmenovani souboru

Taktez funkcni reseni. Tez dekuji.

K čemu hudba, která nevede k extázi... Stop MDMA !!! I spam umí být roztomilý

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.