• User Attivo

    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


  • User Attivo

    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.";
    ?>
    #############################################