Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Upload multiplo nella stessa cartella

    Salve a tutti, posto subito il problema:
    sto usando un form di upload multiplo che richiama ovviamente questo script:

    ##################################################
    <?php
    $target = basename( $_FILES['photoupload']['name']);
    umask(0);
    $md5 = md5_file($_FILES['photoupload']['tmp_name']);
    if(!file_exists($md5)) mkdir($md5);
    umask(0);
    if(move_uploaded_file($_FILES['photoupload']['tmp_name'], $md5 . "/" . $target))
    echo "DIR: $md5 ".rawurlencode($target);
    else
    echo "Sorry, there was a problem uploading your file.";
    ?>
    ##################################################

    ...solo che lui mi crea una cartella per ogni file....come si potrebbe fare per mandare tutti i file dell'invio in una unica cartella...sempre in md5?

    saluti Peter

  2. #2
    Non l'ho provato e non penso sia il massimo dal punto di vista del codice.

    Codice PHP:
    <?php
    $md5 
    md5_file($_FILES['photoupload']['tmp_name']);
    $target $md5 '_' basename$_FILES['photoupload']['name']);
    if(
    move_uploaded_file($_FILES['photoupload']['tmp_name'], $target))
    echo 
    "DIR: ".rawurlencode($target);
    else
    echo 
    "Sorry, there was a problem uploading your file.";
    ?>

  3. #3
    no, credo non ci siamo....non si crea la cartella ma invia solo i file:

    3a6c8ec5d6847e42c444a3e6f9974188_DSCF0402.JPG
    c7abc2820ac3ae5dcd2156ca24786bbe_DSCF0399.JPG
    dbd1b53d452b718fc22b302e50a63e98_DSCF0401.JPG
    f9d11f189bb95e81d7eef9f391afa0f1_DSCF0400.JPG

  4. #4
    Spiega che cosa intendi per "mandare tutti i file dell'invio in una unica cartella...sempre in md5".

    L'md5 è calcolato in base ad ogni singolo file. Come vorresti calcolarlo in base "all'invio"?

  5. #5
    sinceramente non sono molto pratico con questo benedetto PHP!!!....ma ora che sia md5 o altro espediente che al momento dell'invio dei file mi crei una cartella univoca e detro ci piazza i file...mentre invece ora quando invio se nei form ci sono ad esempio 3 file lui crea 3 cartelle con ciascuna un file.

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    A parte il codice il probl fondamentale e' la funzione md5

    La funzione md5 e' una funzione di hashing, ossia "traduce" una stringa in un altra.

    Stringhe diverse avranno hash diverse.
    il prob e' qua :

    move_uploaded_file($_FILES['photoupload']['tmp_name'], $md5 . "/" . $target)

    il secondo parametro e' la dir/filename di destinazione se gli metti $md5 ovviamente lui ti crea automaticamente una dir con il valore hash del nome file.

    fai invece

    $dest_dir = "./file_pool/";

    poi

    move_uploaded_file($_FILES['photoupload']['tmp_name'], $dest_dir. "/" . $target)

    cmq e' abb inutile usare md5 sul file name ti genera file con nomi linghissimi dei quali poi nn puoi piu' capire come si chiamano.

    L'algoritmo che usa md5 per generare l'hash non e' reversibile a meno di nn usare qlke tool che effettua un brute force.


    md5 e' comoda per generare i checksum dei files ma per fare cio' dvei leggere il contenuto del file con file_get_content e quindi passarlo ad md5 magari te lo salvi su db o dove ti pare.
    Cmq vedi te.

    EDIT:
    md5 e' univco nel senso che md5("ciao") dara' sempre lo stesso output
    ma se faccio md5("hello") l'utput sara' diverso da quello della stringa "ciao".
    E cmq dai un occhio agli algoritmi di hashing

  7. #7
    purtropppo non funziona...mi crea una cartella in md5 nella root senza alcun file ed invece i file li inserisce dentro pippo


    Codice PHP:
    <?php 
    $target 
    basename$_FILES['photoupload']['name']); 
    umask(0);
    $md5 md5_file($_FILES['photoupload']['tmp_name']);
    if(!
    file_exists($md5)) mkdir($md5); 
    umask(0);
    $dest_dir "pippo"
    if(
    move_uploaded_file($_FILES['photoupload']['tmp_name'], $dest_dir "./" $target)) 
      echo 
    "DIR: $md5 ".rawurlencode($target);
    else 
      echo 
    "Sorry, there was a problem uploading your file."
    ?>

  8. #8
    ...potrebbe essere il fatto che il form di inserimento file si integra con AJAX che nella fattispecie sto usando questo http://digitarald.de/project/fancyupload/ e questo maledetto ad agni file inserito nella lista mi richiama script.php

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Hai sbagliato a scrivere il path.

    $dest_dir = "pippo"; //<== senza "/" parte dalla dir corrente


    // qua il path e' sbagliato
    (move_uploaded_file($_FILES['photoupload']['tmp_name'], $dest_dir . "./" . $target))

    //prova cosi'
    (move_uploaded_file($_FILES['photoupload']['tmp_name'], "./".$dest_dir . "/" . $target))

    Fai sempre attenzione al path tu prima cercavi di salvare su "pippo./file.jpg"
    ora salverai in "./pippo/file.jpg".

    Ovviamete se nn fai controlli lato codice devi assicurarti che la dir pippo esista.
    Inoltre la dir deve essere nella stessa cartella dello script se usi "./" .
    Si tratta solo di saper gestire un path.

  10. #10
    ..ecco questo come dici tu
    Codice PHP:
    <?php
    $target 
    basename$_FILES['photoupload']['name']);
    umask(0);
    $md5 md5_file($_FILES['photoupload']['tmp_name']);
    if(!
    file_exists($md5)) mkdir($md5);
    umask(0);
    $dest_dir "pippo";
    if(
    move_uploaded_file($_FILES['photoupload']['tmp_name'], $dest_dir "/" $target)) 
    echo 
    "DIR: $md5 ".rawurlencode($target);
    else 
    echo 
    "Sorry, there was a problem uploading your file."
    ?>


    ...mi crea una cartella in md5 vuota nella root dello script.php ed i file li mette dentropippo

    Ovviamente se i file nel form sono 2 lui crea 2 cartelle md5 vuote nella root e i 2 file nella cartella pippo .


    cmq il più attendibile è questo che purtroppo crea una cartella per ogni file e dentro il relativo file):

    Codice PHP:
    <?php
    $target 
    basename$_FILES['photoupload']['name']); 
     
    umask(0); 
    $md5 md5_file($_FILES['photoupload']['tmp_name']); 
    if(!
    file_exists($md5)) mkdir($md5);  
    umask(0); 
    move_uploaded_file($_FILES['photoupload']['tmp_name'], $md5 "/" $target); 
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.