Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema al enviar input type file

Estas en el tema de Problema al enviar input type file en el foro de Frameworks JS en Foros del Web. hola tenga todos un excelente dia, mi problema es el siguiente quiero cargar un archivo y guardar su nombre y direccion en un la base ...
  #1 (permalink)  
Antiguo 11/11/2009, 11:13
 
Fecha de Ingreso: noviembre-2008
Mensajes: 80
Antigüedad: 15 años, 5 meses
Puntos: 1
Problema al enviar input type file

hola tenga todos un excelente dia, mi problema es el siguiente quiero cargar un archivo y guardar su nombre y direccion en un la base de datos pero el sucede que cuando envio el fomulario todos los datos llegan pero el archivo por ningun lado.

el formulario se encuentra en un div y por ello utilizo esta funcion
Código PHP:
function enviar_pag(urlid_contenedor){
var 
pagina_requerida false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest()
} else if (
window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")

catch (
e){ // en caso que sea una versión antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (
e){}
}
}
else
return 
false
pagina_requerida
.onreadystatechange=function(){ // función de respuesta
cargarpagina(pagina_requeridaid_contenedor)
}
pagina_requerida.open('GET'urltrue// asignamos los métodos open y send
pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requeridaid_contenedor){
if (
pagina_requerida.readyState == && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
function 
enviarFormulario(urlformid){
    var  
peticion false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
 
peticion = new XMLHttpRequest()
} else if (
window.ActiveXObject){ // pero si es IE
try {
 
peticion = new ActiveXObject("Msxml2.XMLHTTP")

catch (
e){ // en caso que sea una versión antigua
try{
 
peticion = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (
e){}
}
}
         var 
Formulario document.getElementById(formid);
         var 
cadenaFormulario "";
         var 
sepCampos;
         
sepCampos "";
         for (var 
i=0<= Formulario.elements.length-1;i++) {
         if(
Formulario.elements[i].type=='radio'){
          if(
Formulario.elements[i].checked){
         
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
         
sepCampos="&";}
         }
         else{
          
cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
         
sepCampos="&";
         }
}
  
peticion.open("POST"urltrue);
  
peticion.setRequestHeader('Content-Type''application/x-www-form-urlencoded; charset=ISO-8859-1');
  
peticion.onreadystatechange = function () {
  if (
peticion.readyState == && (peticion.status == 200 || window.location.href.indexOf ("http") == - 1)){
                
document.getElementById('contenedor').innerHTML peticion.responseText;
          } 
}
peticion.send(cadenaFormulario);

y este es el formulario
Código PHP:
<?php
     
if (isset($_FILES['fichero']['tmp_name'])) {
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                        echo 
"<br><hr><br>";
        }
    }

// A continuación el formulario
}

include_once 
"../ConsultasDAO.php";
if (
$_SESSION['us']!=null){
 if(
$_POST['id_doc']!=null)
   {
    
$dato[0]=$_POST['id_doc'];
    
$dato[1]=$_POST['nom_doc'];
    
$dato[2]=$_POST['dir_doc'];
    
$dato[3]=$_POST['tel_doc'];
    
$dato[4]=$_POST['tit_doc'];
    
$dato[5]=$_POST['jor_doc'];
    
$dato[6]=$_POST['niv_doc'];
    
$con=new ConsultasDAO();
    
$con->ingreso_doc($dato);
   }
  if((
$_POST['id_doc']==null)||($_SESSION['res']!=null)){
  
$_SESSION['res']=null;
?>
<center>
<form name="form1" method="post" action="javascript:enviarFormulario('../dao/php_docente/nuevo.php','form1');" enctype="multipart/form-data">
<br>
<div style="background-image: url(../Imagenes/fondito2.png); background-position:center top; background-repeat:no-repeat;">
<br><br>
  <table width="267">
    <caption align="top">
      <span class="Estilo4"><img src="../Imagenes/nuevo_doc.png" width="335" height="50" border="0"></span>
    </caption>
    <tr>
      <th align="right">Identificacion</th>
      <td align="left"><input name="id_doc" type="text" value="<?php echo "".$_POST['id_doc']; ?>" onKeyPress="return acceptNum(event)"></td>
    </tr>
    <tr>
      <th align="right">Nombres</th>
      <td align="left"><input name="nom_doc" size="40" type="text" onKeyUp="this.value=this.value.toUpperCase();" value="<?php echo "".$_POST['nom_doc']; ?>"></td>
    </tr>
     <tr>
      <th align="right">Titulo</th>
      <td align="left"><input name="tit_doc" type="text" value="<?php echo "".$_POST['tit_doc']; ?>"></td>
    </tr>
    <tr>
      <th align="right">Direccion</th>
      <td align="left"><input name="dir_doc" type="text" value="<?php echo "".$_POST['dir_doc']; ?>"></td>
    </tr>
    <tr>
      <th align="right">Telefono</th>
      <td align="left"><input name="tel_doc" type="text" value="<?php echo "".$_POST['tel_doc']; ?>"></td>
    </tr>
    <tr>
      <th align="right">Nivel de Enseñanza</th>
      <td align="left"><select name="niv_doc"  id="niv_doc">
     <option  value="" selected="selected">------------------------------</option>
     <option value="Preescolar">Preescolar</option>
     <option value="Basica Primaria">Basica Primaria</option>
     <option value="Basica Secundaria">Basica Secundaria</option>
    </select></td>
    </tr>
    <tr>
      <th align="right">Jornada</th>
      <td align="left"><select name="jor_doc"  id="jor_doc">
     <option  value="" selected="selected">-------------</option>
     <option value="Mañana">Ma&ntilde;ana</option>
     <option value="Tarde">Tarde</option>
     <option value="Mañana y Tarde">Ma&ntilde;ana y Tarde</option>
    </select></td>
    </tr>
    <tr>
      <th align="right">Foto:</th>
      <td align="left"><input name="fichero" type="file"></td>
    </tr>
    <tr><th colspan="2" scope="row">
         <a class="enlace" href="#" onClick="valida_ing('form1');" ><img src="../Imagenes/botong.png" width="112" height="38" border="0"></a>
        <a class="enlace" href="#" onClick="document.forms.form1.reset();return false"><img src="../Imagenes/cancelar.png" width="112" height="38" border="0"></a>
     </th>
    </tr>
  </table>
  <br>
  </div>
</form>
</center>
no se si por ser tipo file influye en algo pero la verdad esque estoy un poco confundido
agradezco enormemente sus repuestas
  #2 (permalink)  
Antiguo 11/11/2009, 11:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema al enviar input type file

Es que no se puede enviar un archivo usando Ajax. Tienes que usar un iframe para enviarlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/11/2009, 11:51
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema al enviar input type file

Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 17:56.