Resultados 1 al 16 de 16

Tema: enctype="multipart/form-data" no retorna ruta completa

  1. #1 enctype="multipart/form-data" no retorna ruta completa 
    Iniciado
    Fecha de ingreso
    Feb 2012
    Mensajes
    15
    Descargas
    0
    Uploads
    0
    Hola a tod@s,


    por qué será que al tener un form donde utilizo input type="file" y declarando en el tag form enctype="mutipart/form-data" y method="post" no puedo obtener la ruta completa del archivo? Sera que es el Firefox 11.0 el del lio?

    Código:
    <form method="post" enctype="multipart/form-data" action="<?= PHP_SELF; ?>">
        <input type="file" id="arc" name="arc">
     </form>
    Resulta que ese nombre de archivo se envia a script php y como llega solo el nombre del archivo el resultaso es que no encuentra el archivo y pailas....

    De ante mano gracias por su atencion
    Última edición por AJaramillo; 25-02-2012 a las 23:59
     

  2. #2  
    Iniciado
    Fecha de ingreso
    Feb 2012
    Mensajes
    8
    Descargas
    0
    Uploads
    0
    Los archivos que se suben al servidor se almacenan como ficheros temporales. Debes copiar el fichero temporal que se almacena en el servidor a una ruta en un directorio de tu aplicación, por ejemplo con move_uploaded_files().
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Feb 2012
    Mensajes
    15
    Descargas
    0
    Uploads
    0
    Que tal endpoint

    Estuve revisando lo que me indicas.El codigo lo tengo asi:

    Código:
    ini_set("upload_tmp_dir","/tmp"); //en php.ini esta deshabilitado
    $arc = $_POST["arc"];  // $_POST["arc"] llega sin ruta
    move_uploaded_file($arc,"$upload_dir/$arc");
    $gestor = file("$upload_dir/$arc");
    Con esto me reporta que el archivo /tmp/mi_archivo.csv no existe.

    Me puedes dar una idea de como soluciono esto?

    Mil Gracias
     

  4. #4  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.571
    Descargas
    58
    Uploads
    0
    Código:
    $arc = $_POST["arc"];  // $_POST["arc"] llega sin ruta
    Debes hacer uso del vector $_FILES y no de $_POST:

    $_FILES["arc"]["name"] => hace referencia al nombre original del fichero.
    $_FILES["arc"]"tmp_name"] => hace referencia al nombre del fichero temporal almacenado en el servidor (tal y como te ha comentado endpoint).
    $_FILES["arc"]["size"] => contiene el tamaño del fichero que se ha subido al servidor.
    $_FILES["arc"]["type"] => hace referencia al tipo de fichero (su mimetype).
    $_FILES["arc"]["error"] => indica si el fichero se ha transferido con éxito o no.

    Así, para subir el fichero debes hacer:

    Código:
    $ficheroTemporal = $_FILES["arc"]["tmp_name"];
    $nombreOriginal = $_FILES["arc"]["name"];
    move_uploaded_files($ficheroTemporal, $upload_dir.'/'.$nombreOriginal);
    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

     

  5. #5  
    Iniciado
    Fecha de ingreso
    Feb 2012
    Mensajes
    15
    Descargas
    0
    Uploads
    0
    Uyyyy... tratando de hacer un prit_r($_FILES) no aparece nada.... obviamente no accede a $_FILES["arc"][...]
     

  6. #6  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.571
    Descargas
    58
    Uploads
    0
    Noto cierta ironía en tus palabras... y te responderé que lo que si es obvio es que en $_POST[] no vas a encontrar nada referido a ningún fichero, y que si $_FILES está vacio es "obvio" que o no se está enviando ninguna información referida al fichero, y ya se vería por qué (por ejemplo, no tienes bien configurado php.ini o el directorio temporal no tiene permisos de escritura) o bien, simplemente no estás haciendo uso correcto de la función print_r... ya que prit_r no existe, hasta dónde yo sé en PHP. "Uyyy" ¿dónde está el submit del form?.

    PD: Siento mucho que no te sirva la ayuda incondicional prestada y que mi aporte no esté a su altura... ¿podría ayudar a su excelencia en algo más o puedo retirarme?
    Última edición por hystd; 28-02-2012 a las 23:08
    El optimista tiene ideas, el pesimista... excusas

     

  7. #7  
    Iniciado
    Fecha de ingreso
    Feb 2012
    Mensajes
    15
    Descargas
    0
    Uploads
    0
    Noooooo..... Disculpame hystd, si mi expresión (Uyyyy) sonó irónica... en ningún momento lo quise ser y menos con alguien que me presta su ayuda desinteresadamente.

    Con respecto al submit de la forma ,lo manejo con JQuery:

    Código PHP:
    function subirArc(arc) {
        
    datos = $("#depe").serialize()+"&accion=SubirDatos";
        $.
    ajax({
            
    datadatos,
            
    type"POST",
            
    dataType"json",
            
    url"pret_multiple.php?",
            
    success: function(json) {
    console.log(json);
                if (
    json.success) {
                    
    //Aca el manejo de la respuesta
                
    }
            }
        });

    Al hacer un printr($_POST) si veo que llega el nombrre del archivo, pero sin la ruta

    Mil Gracias

    Un Cordial Saludo
     

  8. #8  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.571
    Descargas
    58
    Uploads
    0
    Ok, discúlpame a mi por mal interpretarte... no te preocupes, estas cosas pasan en los foros... por suerte uno ya está acostumbrado .

    Volvemos al JQuery... es dónde tiene toda la pinta de estar el problema. Antes de nada ¿has comprobado que el fichero de configuración PHP.INI tiene la directiva file_upload activada y que el directorio temporal del servidor donde se almacena el fichero subido tiene permisos de escritura? Si es así... veamos el JQuery.

    Estás enviando en formato json los datos por POST, y eso a la hora de tratar con ficheros no va a funcionar. Deberás crearte previamente un objeto javascript de tipo formdata, que en tu código debería ser algo así:

    Código:
    var file;
    datos = new FormData();  
    datos.append("files[]", file); 
     
    $.ajax({
       url: "pret_multiple.php",
       type: "POST",
       data: datos,
       processData: false,
       contentType: false,
       function(json) {
           console.log(json);
           if (json.success) {
                    //Aca el manejo de la respuesta
           }
       } 
    });
    Y en tu PHP (pret_multiple.php)...

    Código:
    move_uploaded_file($_FILES["files"]["tmp_name"], $_FILES["files"]["name"]);
    Al adjuntar un fichero, pongamos por ejemplo una imagen, esto debería codificar el atributo data como:

    data:img/gif; base64,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxx

    donde xxxxxx...xxx= representa el fichero a enviar codificado en base64, y así debería funcionar...

    Un saludo.
    Última edición por hystd; 29-02-2012 a las 00:31
    El optimista tiene ideas, el pesimista... excusas

     

  9. #9  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.571
    Descargas
    58
    Uploads
    0
    He encontrado esta página que tal vez pueda ayudarte... viene con el código fuente:

    http://net.tutsplus.com/tutorials/ja...les-with-ajax/

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

     

  10. #10  
    Iniciado
    Fecha de ingreso
    Feb 2012
    Mensajes
    15
    Descargas
    0
    Uploads
    0
    Hola hystd

    Parece ser que el lio es utilizando JQuery+JSON. Al no utilizarlo trabaja bien la vaina....

    Agradezco mucho tu ayuda
     

  11. #11 ironia? 
    Iniciado
    Fecha de ingreso
    Apr 2012
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    HYSTD Me parece que exageras mucho solo por que el amigo colombiano dice uuuuuuy, mas bien el ironico eres tu en la forma como respondes. igual el te pidio disculpas amablemente, yo solo hago hago una observacion.

    Pero con tu:¿podría ayudar a su excelencia en algo más o puedo retirarme? denota que eres un resentido y le faltaste el respeto, como que "su excelencia"?. tu eres el que deberias pedirle disculpas "desde un comienzo y no el".

    ojala y con esto no se moleste conmigo tambien.

    pd. si vas a ayudar desinteresadamenta a la gente no los remates con esos cinismos desagradables. mejor no ayudes.
    Última edición por gabrielcorr; 04-04-2012 a las 19:52
     

  12. #12  
    Co-Admin HackHispano.com
    Fecha de ingreso
    Jan 2004
    Ubicación
    HackHispano/SM
    Mensajes
    7.621
    Descargas
    30
    Uploads
    8
    Ese es tu primer aporte y tu carta de presentación al foro, no estas entrando con buen pie.
    Pero solo es una observación.....
     

  13. #13 Por Dios 
    Iniciado
    Fecha de ingreso
    Apr 2012
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    Yo no vuelvo a entrar aqui es la primera y la ultima, gracias... ahora resulta que los que buscamos una ayuda agradecida somos los malos del paseo y los angelitos son los administradores del sitio que contestan de esa forma.

    Hasta siempre.

    Gracias a Dios hay otros lugares donde buscar ayuda. les falta mucho de amabilidad y tacto en como tratar a la gente.
     

  14. #14  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.571
    Descargas
    58
    Uploads
    0
    HYSTD Me parece que exageras mucho solo por que el amigo colombiano dice uuuuuuy, mas bien el ironico eres tu en la forma como respondes. igual el te pidio disculpas amablemente, yo solo hago hago una observacion.

    Pero con tu:¿podría ayudar a su excelencia en algo más o puedo retirarme? denota que eres un resentido y le faltaste el respeto, como que "su excelencia"?. tu eres el que deberias pedirle disculpas "desde un comienzo y no el".

    ojala y con esto no se moleste conmigo tambien.

    pd. si vas a ayudar desinteresadamenta a la gente no los remates con esos cinismos desagradables. mejor no ayudes.
    1º Si lees, lee completamente las cosas, y verás que más abajo digo: "Ok, discúlpame a mi por malinterpretarte...", con lo que creo, si no me equivoco que todo quedó aclarado. Y más aún, la duda del compañero también llegó a solucionarse, ambas cosas es lo realmente importante, y si te fijas, después de tu intervención no has aportado nada bueno, ni productivo al hilo.

    2º Decir "su excelencia" es una ironía, no una falta de respeto. Y normalmente, cuando hay cierta madurez, suele tomarse como algo gracioso, no como un ataque.

    3º ¿Resentido yo? ¿En un foro? Bueno si tú lo dices...

    4º No tengo tiempo para irme molestando por chorradas de este tipo... si ni siquiera te conozco!, seguro que eres una persona estupenda, y seguro que joven y con toda una vida por delante, para malgastarla en un foro de maleducados.

    5º Creo que los que participan o han participado en este hilo, tenemos cierta madurez, como para que vayan surgiendo espontáneos, con rol de "abogados defensores", y sabemos solucionar las cositas por nuestra propia cuenta. No obstante, gracias por tu participación y hasta nunca. Si decides volver, y empezar con mejor pie, pues serás re-bienvenido, si no, pues sacaré un paquete de pañuelos y lloraré tu ausencia ¿qué quieres que te diga? Si te quieres ir, pues, como decíamos en mi pueblo: "hasta luego Lucas!".

    Un saludo.
    Última edición por hystd; 04-04-2012 a las 21:10
    El optimista tiene ideas, el pesimista... excusas

     

  15. #15  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.571
    Descargas
    58
    Uploads
    0
    Yo no vuelvo a entrar aqui es la primera y la ultima, gracias... ahora resulta que los que buscamos una ayuda agradecida somos los malos del paseo y los angelitos son los administradores del sitio que contestan de esa forma.

    Hasta siempre.

    Gracias a Dios hay otros lugares donde buscar ayuda. les falta mucho de amabilidad y tacto en como tratar a la gente.
    ¿Qué ayudita has venido aquí a buscar? No termino de localizar en este hilo cuál es tu petición de ayuda.

    Sí! los moderadores somos unos angelitos... sólo nos faltan las alas.

    Espera que termine psicología... Disculpa si nuestra inteligencia emocional no es la que posees y no sabemos tener la empatía necesaria para saber cómo se siente cada uno en el momento que escribe en el foro! Si no te gusta el trato, pues jolín, que pena, ahora tendré que ir a comprar un nuevo paquete de pañuelos porque el anterior se me ha acabado

    En serio gracias por aparecer, porque tu paso por aquí es digno de la Paramount Comedy y has conseguido que me entretenga un rato!.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

     

  16. #16  
    Co-Admin HackHispano.com
    Fecha de ingreso
    Jan 2004
    Ubicación
    HackHispano/SM
    Mensajes
    7.621
    Descargas
    30
    Uploads
    8
    No gasto dos mensajes en tonterías, cierro el hilo, si algún usuario quiere aportar algo me contacte y lo reabro.
     

Marcadores
Marcadores
Permisos de publicación
  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •