Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2015, 13:41
RyanTylor
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Pregunta Error al subir un archivo con php

Saludos tengo el siguiente formulrio para subir un archivo con ajax y php:
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>&nbsp;</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> 
Este es mi PHP que sube el archivo, en este caso solo se permiten las extensiones .pdf, .doc y .docx, lo que pasa es q al subir el archivo se va por el if del error y me imprime Error 1 de respuesta al ajax y no me carga el archivo y la verdad no se que pueda ser ya que no estoy limitando el peso del archivo solo la extension y eso funciona bien.
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'] > ){
      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';
  }
}
?>
Alguna ayuda por favor ?