Antes de nada decir que soy nuevo en el foro, y que gracias a este foro, he aprendido lo poco que sé de php.
Pero aquí viene mi primer tropiezo con dicha programación.
El problema es el siguiente:
He hecho un script para subir archivos al servidor, el cual funciona correctamente pero solo con determinados archivos, por ejemplo los .txt y los .zip, los sube bien, pero los .rar y los .pdf no. Pego el código a continuación. (El código está en catalàn, però solo hace falta seguir el nombre de las variables).
El formulario: form_files.php
Código:
El Script: form_upload.php<fieldset> <legend>Pujar fitxers.</legend> <form action="upload_files.php" method="post" enctype="multipart/form-data"> <p><label for="arxiu">Arxiu: </label><input name="arxiu" id="arxiu" type="file" /></p> <p><label for="cat">Categoria: </label><select name="cat" id="cat"><option>Apunts</option><option>Manuals</option><option>Tutorials</option></select></p> <p><input type="submit" name="pujar" id="pujar" value="Pujar" /></p> </form> </fieldset>
Código:
Bien, si alguno tiene idea de porqué puedo subir un tipo de archivos y otros no, lo agradecería sumamente.<?php $name=$_FILES['arxiu']['name']; $type=$_FILES['arxiu']['type']; $size= $_FILES['arxiu']['size']; $cat=$_POST['cat']; echo "<p><strong>Nom :</strong> $name</p>"; echo "<p><strong>Format :</strong> $type</p>"; echo "<p><strong>Tamany :</strong> $size bytes</p>"; echo "<p><strong>Categoria :</strong> $cat</ps>"; if ($cat == Apunts) { $uploaddir = '/var/www/ragnarok/recursos/apunts/'; $uploadfile = $uploaddir . basename($_FILES['arxiu']['name']); if (move_uploaded_file($_FILES['arxiu']['tmp_name'],$uploadfile)) { echo "<p>L'arxiu $name s'ha pujat correctament al directori : $uploaddir</p>"; } else { echo "<p>No s'ha pujat l'arxiu $name correctament.</p>"; } } elseif ($cat == Manuals) { $uploaddir = '/var/www/ragnarok/recursos/manuals/'; $uploadfile = $uploaddir . basename($_FILES['arxiu']['name']); if (move_uploaded_file($_FILES['arxiu']['tmp_name'],$uploadfile)) { echo "<p>L'arxiu $name s'ha pujat correctament al directori : $uploaddir</p>"; } else { echo "<p>No s'ha pujat l'arxiu $name correctament.</p>"; } } else { $uploaddir = '/var/www/ragnarok/recursos/tutorials/'; $uploadfile = $uploaddir . basename($_FILES['arxiu']['name']); if (move_uploaded_file($_FILES['arxiu']['tmp_name'],$uploadfile)) { echo "<p>L'arxiu $name s'ha pujat correctament al directori : $uploaddir</p>"; } else { echo "<p>No s'ha pujat l'arxiu $name correctament.</p>"; } } ?>
El directorio dónde se sube los archivos tiene permisos para hacer cualquier cosa.
Gracias por adelantado.
Un saludo.