hola amigo David aqui tengo un ejemplo donde se puede subir archivos mediante $.ajax().
como se podria unir los del formulario y lo del archivo intente pero no secomo pasar el parametro del formulario.
aqui esta el ejemplo de subir archivo.
index.html
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="js/jquery-1.7.2.min.js" ></script> <script type="text/javascript"> function uploadAjax(){
var form = $('#form1').serialize();//capturo los elementos del formulario
alert('Datos serializados: '+form);
var inputFileImage = document.getElementById("archivoImage");
var file = inputFileImage.files[0];
var data = new FormData();
data.append("archivo",file);
var url = "upload.php";
$.ajax({
url:url,
type:"POST",
dataType: 'json',
contentType:false,
data:data, //aqui es el problema que no se como poner el variable form que me contiene lo del formuario. e intetando de varias maneras y nada
processData:false,
cache:false
}).done(function(respuesta){
alert(respuesta.mensaje);
});
}
<input type="file" name="archivoImage" id="archivoImage" /> <form name="form1" method="post" action="" id="form1">
<input type="button" id="botonSubidor" onclick="uploadAjax();"/>
qui el codigo php upload.php
Código PHP:
Ver original<?php
$upload_folder ="imagenes";
$nombre_archivo = $_FILES["archivo"]["name"];
/*$nombre=$_POST['nombre'];*/
/*$nombre=$_POST['apellidos'];*/
$tipo_archivo = $_FILES["archivo"]["type"];
$tamano_archivo = $_FILES["archivo"]["size"];
$tmp_archivo = $_FILES["archivo"]["tmp_name"];
$archivador = $upload_folder . "/" . $nombre_archivo;
$respuesta = new stdClass();
$respuesta->mensaje = "Se movio correctamente";
?>