Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error al subir un archivo con php

Estas en el tema de Error al subir un archivo con php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/03/2015, 13:41
 
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 ?
  #2 (permalink)  
Antiguo 24/03/2015, 13:54
 
Fecha de Ingreso: noviembre-2013
Ubicación: New York
Mensajes: 114
Antigüedad: 10 años, 5 meses
Puntos: 1
Exclamación Respuesta: Error al subir un archivo con php

Amigos profundice un poco mas en el error y resulta que hay que modificar el archivo .htaccess y poner lo siguiente, bueno aclaro que en este caso permito solo archivos maximo de 20 Megas:
Cita:
# Permitir carga de archivos de 20 M
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200
Lo dejo por si a alguien le sirve, y si es asi dejame puntos

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.