Joomla.it Forum
Non solo Joomla... => Sviluppo => : Felas 01 Nov 2010, 10:42:25
-
Salve
sto scrivendo codice per caricare video sul server e poi vederli sul sito, per ora mi sto occupando del caricamento, praticamente ho messo il lato client in un modulo html personalizzato e fin qui ok, la parte php scritta per ora l ho salvata in un file upload.php nella cartella mod_custom, però non fa.. dove devo metterlo questo file?
-
devi scrivere un componente
M.
-
allora ho cambiato approccio cioè sto facendo un plugin per un componente che mi mette i video in galleria, ecco questo plugin appunti permetterebbe agli utenti di caricare i video tutto qui poi sarò io manualmente a metterli nella galleria.
allora ho messo il form client
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile">
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
<input type="submit" value="Invia il file">
</form>
e tutto ok mi fa vedere sfoglia dove prendere il mio file e tutto.
ma il file upload.php dove lo metto? cioè es il componente si chiama pippo e il form che ho scrito sopra è in
component\pippo
il file upload.php devo metterlo li?
solo che mi dà errore cioè mi dice oggetto non trovato.
come script stavo usando una cosa del genere
<?php
// controllo che non ci siano stati errori nell'upload (codice = 0)
if ($_FILES['uploadfile']['error'] == 0){
// upload ok
// controllo che il file sia in formato gif
if ($_FILES['uploadfile']['type'] != "image/gif") die("Formato file non valido, è permesso solo il formato gif");
// copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
copy($_FILES['uploadfile']['tmp_name'], "file_caricati/".$_FILES['uploadfile']['name']) or die("Impossibile caricare il file");
// upload terminato, stampo alcune info sul file
echo "Upload terminato con successo:
";
echo "Nome file: ".$_FILES['uploadfile']['name']."
";
echo "Dimensione file: ".$_FILES['uploadfile']['size']."
";
echo "Tipo MIME file: ".$_FILES['uploadfile']['type'];
}
else{
// controllo il tipo di errore
if ($_FILES['uploadfile']['error'] == 2){
// errore, file troppo grande (> 1MB)
die("Errore, file troppo grande: il massimo consentito è 1MB");
}
else{
// errore generico
die("Errore, impossibile caricare il file");
?>
-
devi scrivere un componente
M.
se dovevi fare un plugin ti dicevo: "devi scrivere un plugin" ...ti pare?
... non c'è la scelta, ogni cosa ha la sua funzione, il plugin serve ad altro.
M.
-
no ma dicevo...
ma il file upload.php dove lo metto? cioè es il componente si chiama pippo e il form che ho scrito sopra è in
component\pippo
il file upload.php devo metterlo li?
solo che mi dà errore cioè mi dice oggetto non trovato.
-
ciao Felas,
prima due cose importanti:
1. MAX_FILE_SIZE
deve precedere il campo file, altrimenti non serve
2. $_FILES['uploadfile']['type'] != "image/gif"
a parte il die() che non mi sembra il massimo come gestione delle eccezioni, non è un controllo sicuro, perché il type è deciso dal client e non è verificato dal server. e, visto che non controlli nemmeno l'estensione, chiunque abbia un minimo di conoscenza ti carica subito una bella shell php.
poi:
la procedura di upload si deve trovare all'interno del componente, nel senso che la action della form DEVE puntare al componente. sarà poi l' entry point del componente a verificare se è un upload ed ad includere il controller adeguato. vedi il componente di esempio sul wiki.
ciao,
marco
-
ciao Felas,
prima due cose importanti:
1. MAX_FILE_SIZE
deve precedere il campo file, altrimenti non serve
2. $_FILES['uploadfile']['type'] != "image/gif"
a parte il die() che non mi sembra il massimo come gestione delle eccezioni, non è un controllo sicuro, perché il type è deciso dal client e non è verificato dal server. e, visto che non controlli nemmeno l'estensione, chiunque abbia un minimo di conoscenza ti carica subito una bella shell php.
poi:
la procedura di upload si deve trovare all'interno del componente, nel senso che la action della form DEVE puntare al componente. sarà poi l' entry point del componente a verificare se è un upload ed ad includere il controller adeguato. vedi il componente di esempio sul wiki.
ciao,
marco
grazie!! ora ho capito!! e mi carica i file!