- Home
- Categorie
- Coding e Sistemistica
- PHP
- Uploadin file in cartella md5
-
Uploadin file in cartella md5
Salve di nuovo e scusate forse il ripetersi di un problema a seguire di un precedente post, ma proprio non riesco a fare l'upload in una cartella creata dinamicamente con mkdir:
mkdir.php ##############################
<?php
$dir_name_file = "_".sha1(md5(uniqid(rand(), true)));
umask(0);
if(@mkdir($dir_name_file, 0777)){ return true; };
?>#####################################
script.php ##############################
<?php
include("mkdir.php");
$result = array();if (isset($_FILES['photoupload']) )
{
$file = $_FILES['photoupload']['tmp_name'];
$error = false;
$size = false;if (!is_uploaded_file($file) || ($_FILES['photoupload'] > 100 * 1024 * 1024) ) else { move_uploaded_file($_FILES['photoupload']['tmp_name'], "./$dir_name_file/".$_FILES['photoupload']['name']); chmod("./$dir_name_file/".$_FILES['photoupload']['name'], 0777); } $addr = gethostbyaddr($_SERVER['REMOTE_ADDR']); $log = fopen('script.log', 'a'); fputs($log, ($error ? 'FAILED' : 'SUCCESS') . ' - ' . preg_replace('/^[^.]+/', '***', $addr) . ": {$_FILES['photoupload']['name']} - {$_FILES['photoupload']} byte\n" ); fclose($log); if ($error) { $result['result'] = 'failed'; $result['error'] = $error; } else { $result['result'] = 'success'; //$result = "Uploaded an image ({$size['mime']}) with {$size[0]}px/{$size[1]}px."; $result = "File Caricato!"; }
}
else
{
$result['result'] = 'error';
$result['error'] = 'Errore Interno!!!';
}if (!headers_sent() )
{
header('Content-type: application/json');
}echo json_encode($result);
?>
#########################################
...il risultato è viene creata la cartella tipo questa: _5d498638024491c65a470eadbcf2e2ebc56cea01
ma all'interno non viene fatto il "move_uploaded_file" del file che riceve dal form.Spero qualcuno mi aiuti..grazie ciao Peter
-
Ho finalmente risolto questo è perfetto, o quasi perche per ogni slot del form mi crea una nuova cartella!!!!...si potrebbe trovare la soluzione che mette tutto dentro una unica cartella (md5)...questo è il problema, in quanto modificando il tutto e inserire un path definito tutto funziona mentre con la creazione della cartella in md5 no!!!
####################################################
<?php$target = basename( $_FILES['photoupload']['name']);
umask(0);
$md5 = md5_file($_FILES['photoupload']['tmp_name']); // calculate the file's MD5 checksum
if(!file_exists($md5)) mkdir($md5);
umask(0); // create a folder for this file
if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $md5 . "/" . $target))
echo "DIR: $md5 ".rawurlencode($target); // return the full URL to the uploaded file
else
echo "Sorry, there was a problem uploading your file.";
?>
#############################################