Código HTML:
<form action="../php/upload_catalogs.php" method="post" enctype="multipart/form-data"> <h3>Subir Catálogos al sistema.</h3> <table> <tr><td>Nombre:</td><td><input type="text" name="txtname"></td></tr> <tr><td>Archivo:</td><td><input type="file" name="myfile"></td></tr> <tr><td> </td><td><input type="submit" value="Upload"></td></tr> </table> <div class="progress"> <div class="bar"></div > <div class="percent">0%</div > <div id="status"></div> </div> </form> <script src="../js/jquery-1.11.1.min.js"></script> <script src="../js/jquery.form.js"></script> <script> (function() { var bar = $('.bar'); var percent = $('.percent'); var status = $('#status'); $('form').ajaxForm({ beforeSend: function() { status.empty(); var percentVal = '0%'; bar.width(percentVal) percent.html(percentVal); }, uploadProgress: function(event, position, total, percentComplete) { var percentVal = percentComplete + '%'; bar.width(percentVal) percent.html(percentVal); }, success: function() { var percentVal = '100%'; bar.width(percentVal) percent.html(percentVal); }, complete: function(xhr) { status.html(xhr.responseText); } }); })(); </script>
Código PHP:
<?php
if( !isset($_FILES['myfile']) ){
echo 'Ha habido un error, tienes que elegir un archivo<br/>';
}else{
$nombre = $_FILES['myfile']['name'];
$nombre_tmp = $_FILES['myfile']['tmp_name'];
$tipo = $_FILES['myfile']['type'];
$tamano = $_FILES['myfile']['size'];
$ext_permitidas = array('pdf','doc','docx');
$partes_nombre = explode('.', $nombre);
$extension = end( $partes_nombre );
$ext_correcta = in_array($extension, $ext_permitidas);
$tipo_correcto = preg_match('%\.(pdf|doc|docx)$%i', $nombre);
//$limite = 500 * 1024;
if( $ext_correcta && $tipo_correcto){
if( $_FILES['myfile']['error'] > 0 ){
echo 'Error: ' . $_FILES['myfile']['error'] . '<br/>';
}else{
if( file_exists( '../catalogs/'.$nombre) ){
echo '<br/>El archivo ya existe: ' . $nombre;
}else{
move_uploaded_file($nombre_tmp,"../catalogs/".uniqid().$nombre);
echo "<br/>Guardado en: " . "../catalogs/".$nombre;
}
}
}else{
echo 'Archivo inválido';
}
}
?>