tookie
06-03-2010, 18:21
Ciao a tutti, ho questa pagina in php che raccolto un file video lo salva nel server cambiandogli nome. Il problema è che se il file è un'immagine, a parte per il controllo del formato, va tutto bene, mentre per i video tutti i campi di $_FILES sono vuoti e si blocca al primo controllo
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<fieldset>
<legend>Carica il video</legend>
<input type="file" name="video"/>
</fieldset>
<fieldset>
<legend>Titolo</legend>
<input type="text" name="nomevideo" id="nomevideo" />
</fieldset>
<fieldset>
<legend>Tag</legend>
<p>1) <input type="text" name="tag1"/></p>
<p>2) <input type="text" name="tag2"/></p>
<p>3) <input type="text" name="tag3"/></p>
<br/>
</fieldset>
<input type="submit" value="Upload"/>
<?php
$size=$_FILES["video"]["size"];
$nome=$_FILES["video"]["name"];
$tmp_nome=$_FILES["video"]["tmp_name"];
$type=$_FILES["video"]["type"];
echo $type;
echo "<br />";
echo $size;
echo "<br />";
echo $nome;
echo "<br />";
echo $tmp_nome;
echo "<br />";
$new_nome=$_POST['nomevideo'];
$dimensione_massima_MB=20000000;
$cartella_upload=$_SERVER["DOCUMENT_ROOT"]."/v4u/video/";
$filtrare=1;
$array_estensioni_ammesse=array('.avi','.flv','.mpeg'); //estensioni ammesse
if($nome=="" || $size==0){
echo "Nessun file selezionato per l'upload";
}elseif($size>$dimensione_massima_MB){
echo "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_MB MB";
}else{
$nome_file=$nome;
$errore="";
if($filtrare==1){
$estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
if(!in_array($estensione,$array_estensioni_ammesse)){
$errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."<br/>";
}
}
if(!file_exists($cartella_upload)){
$errore.="La cartella di destinazione non esiste</br>";
}
if($errore==""){
if(move_uploaded_file($tmp_nome, $cartella_upload.$new_nome/*.$estensione*/)){
chmod($cartella_upload.$new_nome/*.$estensione*/,0777); //permessi per poterci sovrascrivere/scaricare
echo "Operazione eseguita con successo. Upload riuscito.";
}else{
echo "Impossibile effettuare l'upload del file";
}
}else{
echo $errore;
}
}
?>
</form>
non riesco a trovare una soluzione dato che il server non rileva file video, a me interessano solo i video, non le immagini. Possibile che sia da cambiare qualche voce del file php.ini? se si quali? Oppure va utilizzata qualche libreria particolare?
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<fieldset>
<legend>Carica il video</legend>
<input type="file" name="video"/>
</fieldset>
<fieldset>
<legend>Titolo</legend>
<input type="text" name="nomevideo" id="nomevideo" />
</fieldset>
<fieldset>
<legend>Tag</legend>
<p>1) <input type="text" name="tag1"/></p>
<p>2) <input type="text" name="tag2"/></p>
<p>3) <input type="text" name="tag3"/></p>
<br/>
</fieldset>
<input type="submit" value="Upload"/>
<?php
$size=$_FILES["video"]["size"];
$nome=$_FILES["video"]["name"];
$tmp_nome=$_FILES["video"]["tmp_name"];
$type=$_FILES["video"]["type"];
echo $type;
echo "<br />";
echo $size;
echo "<br />";
echo $nome;
echo "<br />";
echo $tmp_nome;
echo "<br />";
$new_nome=$_POST['nomevideo'];
$dimensione_massima_MB=20000000;
$cartella_upload=$_SERVER["DOCUMENT_ROOT"]."/v4u/video/";
$filtrare=1;
$array_estensioni_ammesse=array('.avi','.flv','.mpeg'); //estensioni ammesse
if($nome=="" || $size==0){
echo "Nessun file selezionato per l'upload";
}elseif($size>$dimensione_massima_MB){
echo "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_MB MB";
}else{
$nome_file=$nome;
$errore="";
if($filtrare==1){
$estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
if(!in_array($estensione,$array_estensioni_ammesse)){
$errore.="Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."<br/>";
}
}
if(!file_exists($cartella_upload)){
$errore.="La cartella di destinazione non esiste</br>";
}
if($errore==""){
if(move_uploaded_file($tmp_nome, $cartella_upload.$new_nome/*.$estensione*/)){
chmod($cartella_upload.$new_nome/*.$estensione*/,0777); //permessi per poterci sovrascrivere/scaricare
echo "Operazione eseguita con successo. Upload riuscito.";
}else{
echo "Impossibile effettuare l'upload del file";
}
}else{
echo $errore;
}
}
?>
</form>
non riesco a trovare una soluzione dato che il server non rileva file video, a me interessano solo i video, non le immagini. Possibile che sia da cambiare qualche voce del file php.ini? se si quali? Oppure va utilizzata qualche libreria particolare?