Portál AbcLinuxu, 6. května 2025 15:52
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>
Řešení dotazu:
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 ?'; }
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:
$_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.
Taktez funkcni reseni. Tez dekuji.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.