Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Creare miniservizio di file upload
Forum - PHP - Creare miniservizio di file upload

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 21:41
Martedì, 15/12/2009
Ciao, vorrei creare un servizio di upload fatto in piccolo stile.

Ovvero vorrei fare qualcosa come il servizio Upload e Download di http://antonioserver.altervista.org  ; dove però sia possibile caricare file di tutte le estensioni (tranne *.zip e *.rar) in cui i file non possano superare la dimensione di 15 MB

Finora sono riuscito a fare in php la casella per fare l'upload di file, sono che

1)Non so come bloccare le estensioni pericolose;
2)Non so limitare la dimensione max del file

3)Mi serve una mano a creare la sezioni in cui si vedano tutti i file caricati (e la data e l'ora di caricamento)

PM Quote
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 22:28
Martedì, 15/12/2009
Testo quotato

Postato originariamente da fabriziorocca:

Ciao, vorrei creare un servizio di upload fatto in piccolo stile.

Ovvero vorrei fare qualcosa come il servizio Upload e Download di http://antonioserver.altervista.org  ; dove però sia possibile caricare file di tutte le estensioni (tranne *.zip e *.rar) in cui i file non possano superare la dimensione di 15 MB

Finora sono riuscito a fare in php la casella per fare l'upload di file, sono che

1)Non so come bloccare le estensioni pericolose;
2)Non so limitare la dimensione max del file

3)Mi serve una mano a creare la sezioni in cui si vedano tutti i file caricati (e la data e l'ora di caricamento)



Ti aiuto per la terza richiesta:
crea un array dei file della cartella e pubblica, con un while, ogni file.

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 21:24
Mercoledì, 16/12/2009
Ok però intendo anche una mano nel codice :rofl:

PM Quote
Avatar
ferruccio94 (Member)
Pro


Messaggi: 135
Iscritto: 07/12/2009

Segnala al moderatore
Postato alle 22:48
Mercoledì, 16/12/2009
Testo quotato


1)Non so come bloccare le estensioni pericolose;
2)Non so limitare la dimensione max del file
3)Mi serve una mano a creare la sezioni in cui si vedano tutti i file caricati (e la data e l'ora di caricamento)



1)- Devi creare un array dove metti le estensioni pericolose, però, io ti consiglio di fare un array con i formati accettati, per trovare il formato dei file caricato puoi usare un explode e un count:
2) - Imposti il peso massimo in una variabile, poi controlli con un if
Es.:
Codice sorgente - presumibilmente Delphi

  1. <?php
  2. $tmp = $_FILES['file']['tmp_name']; //da inserire nella funziona copy()
  3. $nome = $_FILES['file']['name']; //nome del file caricato (Es. "prova.png")
  4. $size = $_FILES['file']['size']; //peso del file in byte
  5.  
  6. $max_size = 51200; //peso massimo consentito (in questo caso 50KB)
  7.  
  8. $copy = "upload"; //cartella in cui vengono caricati i file
  9.  
  10. $estensione = explode(".", $nome);
  11. $control = count($estensione)-1; //serve a trovare l'estensione del file
  12.  
  13. $consentiti = array("png", "mp3", "zip", "rar");  //estensioni caricate, e viene mostrato illink
  14.  
  15. if (in_array($estensione[$control], $consentiti) && $max_size < $size) { //se il file è consentito ed è minore del peso massimo
  16. copy($tmp, $copy); //carica il file nella cartella
  17. echo "File caricato!";
  18. } else {
  19. echo "Il file non è tra i consentiti o è troppo pesante!";
  20. }
  21. ?>


3) Puoi usare un foreach() e la funziona glob()
Codice sorgente - presumibilmente Delphi

  1. <?php
  2. foreach( glob("upload/*") as $file) { //glob("upload/*") crea un array di tutti file nella cartella "upload", se era glob("*") era per tutti i file dove si trova lo script, se dopo l'asterisco c'è un formato (Es. .png) creava un array di tutti i file .png, stessa cosa se dopo l'asterisco c'era .exe ecc...?>
  3. <a href="<?php echo $file; ?>" target="_blank"><?php echo $file; ?></a><br>
  4. <?php
  5. } //la riga sopra di html e php, mostra un link al file
  6. ?>



Spero di esserti stato utile :yup:

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 15:19
Giovedì, 17/12/2009
Ho provato ma ... dai un occhiata  http://fabrizioroccapc.altervista.org/prove/index.php

PM Quote
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 16:10
Giovedì, 17/12/2009
Aggiungi un controllo per vedere se l'utente ha mandato qualcosa...

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 16:17
Giovedì, 17/12/2009
Si ma ho linkato la pagina per caricare i file e come vedi si autoinceppa

PM Quote
Avatar
ferruccio94 (Member)
Pro


Messaggi: 135
Iscritto: 07/12/2009

Segnala al moderatore
Postato alle 16:30
Giovedì, 17/12/2009
Testo quotato

Postato originariamente da fabriziorocca:

Si ma ho linkato la pagina per caricare i file e come vedi si autoinceppa


Posta il codice di index.php...

PM Quote
Avatar
fabriziorocca (Normal User)
Guru


Messaggi: 1162
Iscritto: 22/03/2009

Segnala al moderatore
Postato alle 16:32
Giovedì, 17/12/2009
Codice sorgente - presumibilmente Delphi

  1. <?php
  2. $tmp = $_FILES['file']['tmp_name']; //da inserire nella funziona copy()
  3. $nome = $_FILES['file']['name']; //nome del file caricato (Es. "prova.png")
  4. $size = $_FILES['file']['size']; //peso del file in byte
  5.  
  6. $max_size = 51200; //peso massimo consentito (in questo caso 50KB)
  7.  
  8. $copy = "http://fabrizioroccapc.altervista.org/prove/upload"; //cartella in cui vengono caricati i file
  9.  
  10. $estensione = explode(".", $nome);
  11. $control = count($estensione)-1; //serve a trovare l'estensione del file
  12.  
  13. $consentiti = array("png", "mp3", "zip", "rar");  //estensioni caricate, e viene mostrato illink
  14.  
  15. if (in_array($estensione[$control], $consentiti) && $max_size < $size) { //se il file è consentito ed è minore del peso massimo
  16. copy($tmp, $copy); //carica il file nella cartella
  17. echo "file caricato!";
  18. } else {
  19. echo "Il file non è tra i consentiti o è troppo pesante!";
  20. }
  21. ?>


PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo