Salve a tutti, riprendo un post precedente e felicemente risolto Su questo Forum e quindi partendo questo:
Codice PHP:
$append = http_build_query(array(
session_name() => session_id(),
'batch_id' => substr(strtoupper(md5(rand(0, 999999999))), 2, 5)
), null, '&');
<form action="script.php?<?= $append ?>" method="post" enctype="multipart/form-data" id="form-demo">
<input name="nome" type="text" value="" size="10">
</form>
poi questo script.php
Codice PHP:
session_name('SID');
session_start();
$batch_id = date("d-m-Y") . "-[" . trim($_GET['batch_id']) . "]" ;
$result = array();
if (isset($_FILES['photoupload']) )
{
$file = $_FILES['photoupload']['tmp_name'];
$error = false;
$size = false;
if (!is_uploaded_file($file) || ($_FILES['photoupload']['size'] > 100 * 1024 * 1024) )
{
$error = 'Superata dimensione massima per singolo File!';
}
else {
umask(0);
if(!file_exists("./uploadedfiles/$batch_id")) mkdir("./uploadedfiles/$batch_id", 0777);
$dir = "./uploadedfiles/$batch_id";
move_uploaded_file($_FILES['photoupload']['tmp_name'], $dir ."/".$_FILES['photoupload']['name']);
}
$addr = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$log = fopen('script.log', 'a');
fputs($log, ($error ? 'FAILED' : 'SUCCESS') . ' - ' . $addr . ' - ' . $batch_id . ": {$_FILES['photoupload']['name']} - {$_FILES['photoupload']['size']} byte\n" );
fclose($log);
if ($error)
{
$result['result'] = 'failed';
$result['error'] = $error;
}
else
{
$result['result'] = 'success';
$result['size'] = "File Caricato! - Ordine N.: " . $batch_id ;
}
}
else
{
$result['result'] = 'error';
$result['error'] = 'Errore Interno!!!';
}
if (!headers_sent() )
{
header('Content-type: application/json');
}
echo json_encode($result);
come si nota viene creata una cartella random con la data + md5 di 5 lettere/numeri (es.= 22-10-2008-[0F5F2]), se possibile però vorrei aggiungere al nome di quella cartella anche il testo che si piò inserire dal form input e quindi avere una cosa tipo "nome+data+md5" (es.= mario-22-10-2008-[0F5F2])
grazie e un saluto a tutti
Peter