Visualizzazione risultati 1 fino 13 di 13

Discussione: Modificare script upload file per restringere documenti di upload e grandezza

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Talking Modificare script upload file per restringere documenti di upload e grandezza

    Ciao ho in mente 3 cose ma forse una di queste non è possibile farla ma comunque chiedo. Ho uno script di upload file e vorrei:
    1. Dare un limite di dimensioni (da me scelto) sull'upload file.
    2. Scegliere di caricare solo alcuni file.
    3. Far si che possa caricare anche file più grandi di 2MB semmai in due tempi (specie FTP).


    PS. So che nel punto 3 ho scrito "(specie FTP)" ma era solo un esmpio per dire che al caricamento di 2MB si interrompe e poi continua, quindi se un file e grande 4MB lo carica in due tempi. Cercando nel forum ho trovato che la funzione per lo script FTP non è abilitata e che il massimo "peso" che può eseguire AlterVista tramite file e 2MB e non superiore.
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Ospite Guest

    Predefinito

    Così senza lo script che usi per l'upload posso solo dirti che quando carichi un file tramite POST le informazioni di questo sono contenute nell'array superglobale $_FILES.
    Mettiamo caso che "userfile" sia il nome del file uppato:

    $_FILES['userfile']['type'] contiene il tipo di file
    $_FILES['userfile']['size'] la dimensione in bytes

    Queste due variabili dovrebbero essere sufficienti per esaudire le tue due prime richieste.

    Per permettere solo alcuni tipi di file potresti creare un array con i mimetypes consentiti e verificare tramite la funzione in_array() se il tipo di file uppato è contenuto nel suddetto array e se quindi è accettabile o meno.
    Per impostare le massime dimensioni accettabili di un file, puoi fare in questo modo:

    if($_FILES['userfile']['size']>$dimensione_massima)
    // upload non autorizzato
    else
    // upload autorizzato

    Per la terza richiesta, con i files di testo sarebbe anche fattibile, ma con altri tipi di files, dubito sia possibile.

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Mi ero proprio dimenticato scusa, non so dove ho la testa ma e che...beh motivi personali
    Codice PHP:
    <?php
    error_reporting
    (2047);
    if (isset(
    $_POST["invio"])) {
    $percorso = "hosting/";
    if (
    is_uploaded_file($_FILES['file1']['tmp_name'])) {
    if (
    move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
    echo
    '<font color=#FFFFFF>File da te Caricato:</font>';
    echo
    '<font color=#FFFFFF>Nome file: <b>'.$_FILES['file1']['name'].'</b><br></font>';
    echo
    '<font color=#FFFFFF>MIME Type: <b>'.$_FILES['file1']['type'].'</b><br></font>';
    echo
    '<font color=#FFFFFF>Dimensione: <b>'.$_FILES['file1']['size'].'</b> byte<br></font>';
    echo
    '<font color=#FFFFFF>======================<br></font>';
    echo
    '<font color=#FFFFFF>File caricato correttamente!<br></font>';
    } else {
    echo
    "Si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    echo
    "Si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    // HTML ?>
    <form enctype="multipart/form-data" method="post" action="">
    <font face="Comic Sans MS" size="2" color="#00FF00"><b>
    <span style="background-color: #000000">Selezione il file da caricare su Miki92:</span></b></font><br>
    <input type="file" name="file1" size="50">
    <br>
    <input type="submit" value="Carica" name="invio">
    </form>
    <?php
    }
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    Ospite Guest

    Predefinito

    Codice PHP:
    <?php
    error_reporting
    (2047);
    if (isset(
    $_POST["invio"])) {


    $percorso = "hosting/"; //modifica
    $tipi_consentiti=array("tipo1","tipo2"); //modifica
    $dimensione_massima="1000000"; //modifica (! bytes !)


    if($_FILES['file1']['size']>$dimensione_massima || !in_array($_FILES['file1']['type'],$tipi_consentiti))
    exit(
    "Upload non consentito: dimensione file eccessiva o estensione non permessa");


    if (
    is_uploaded_file($_FILES['file1']['tmp_name'])) {


    if (
    move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
    echo
    '<font color=#FFFFFF>File da te Caricato:</font>';
    echo
    '<font color=#FFFFFF>Nome file: <b>'.$_FILES['file1']['name'].'</b><br></font>';
    echo
    '<font color=#FFFFFF>MIME Type: <b>'.$_FILES['file1']['type'].'</b><br></font>';
    echo
    '<font color=#FFFFFF>Dimensione: <b>'.$_FILES['file1']['size'].'</b> byte<br></font>';
    echo
    '<font color=#FFFFFF>======================<br></font>';
    echo
    '<font color=#FFFFFF>File caricato correttamente!<br></font>';
    } else {
    echo
    "Si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    echo
    "Si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    // HTML ?>
    <form enctype="multipart/form-data" method="post" action="">
    <font face="Comic Sans MS" size="2" color="#00FF00"><b>
    <span style="background-color: #000000">Selezione il file da caricare su Miki92:</span></b></font><br>
    <input type="file" name="file1" size="50">
    <br>
    <input type="submit" value="Carica" name="invio">
    </form>
    <?php
    }
    ?>

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Ah dimenticavo, sai indicarmi un convertitore di mega? Esempio MB to KB, GB to MB ecc.
    Perchè nella conversione manuale sono un po' (tutto in realtà) ignorante, non azzecco mai la quantità. E lo script volendo per forza la dimensione massima in byte, beh non so che mettere.
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Ospite Guest

  7. #7
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Dice sempre che la dimensione o l'estensione non è valida, cioè qualsiasi file metto non me lo carica mai. Ho provato (nell'array delle estensioni) a metterlo e a ometterlo il punto (.estensione) ma non succede nulla, sempre la stessa frase.
    Codice PHP:
    <?php
    error_reporting
    (2047);
    if (isset(
    $_POST["invio"])) {


    $percorso = "hosting/"; //modifica
    $tipi_consentiti=array(".gif",".doc",".txt",".pps",".ppt",".zip"); //modifica
    $dimensione_massima="2000000"; //modifica (! bytes !)


    if($_FILES['file1']['size']>$dimensione_massima || !in_array($_FILES['file1']['type'],$tipi_consentiti))
    exit(
    "Upload non consentito: dimensione file eccessiva o estensione non permessa.");


    if (
    is_uploaded_file($_FILES['file1']['tmp_name'])) {


    if (
    move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
    echo
    '<font color=#FFFFFF>File da te Caricato:</font>';
    echo
    '<font color=#FFFFFF>Nome file: <b>'.$_FILES['file1']['name'].'</b><br></font>';
    echo
    '<font color=#FFFFFF>MIME Type: <b>'.$_FILES['file1']['type'].'</b><br></font>';
    echo
    '<font color=#FFFFFF>Dimensione: <b>'.$_FILES['file1']['size'].'</b> byte<br></font>';
    echo
    '<font color=#FFFFFF>======================<br></font>';
    echo
    '<font color=#FFFFFF>File caricato correttamente!<br></font>';
    } else {
    echo
    "Si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    echo
    "Si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    // HTML ?>
    <form enctype="multipart/form-data" method="post" action="">
    <font face="Comic Sans MS" size="2" color="#00FF00"><b>
    <span style="background-color: #000000">Selezione il file da caricare su Miki92:</span></b></font><br>
    <input type="file" name="file1" size="50">
    <br>
    <input type="submit" value="Carica" name="invio">
    </form>
    <?php
    }
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  8. #8
    Ospite Guest

    Predefinito

    Non devi inserire l'estensione, ma il MIMEtype.
    Es: "text/html" per il files ".html".
    La lista dei MIMEtypes la trovi qui

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da Errore in Locale
    Warning: move_uploaded_file(hosting/221293.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\index.php on line 18

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\TEMP\php10.tmp' to 'hosting/221293.gif' in C:\AppServ\www\index.php on line 18
    Si è verificato un errore durante l'upload: 0
    E' solo un problema di locale?
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    Ospite Guest

    Predefinito

    Verifica che la directory "hosting" esista e abbia i corretti permessi di scrittura ;)

  11. #11
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Hai ragione, funziona bene, ma sulla terza opzione non si può fare nulla eh?
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    Ospite Guest

    Predefinito

    Non credo.
    Se si trattasse di un file di testo sarebbe possibile interromperne la lettura arrivati ad una certa riga per continuarla successivamente.
    Per altri files, secondo me è impossibile.
    Aspettiamo però la risposta di chi forse ne sa più di me
    Ciaoo!

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Va beh non importa, se qualcuno sa rispondermi altrmenti non importa perchè per ora mi basta cosi.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •