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

uploadfile con Ajax

Estas en el tema de uploadfile con Ajax en el foro de Frameworks JS en Foros del Web. Hola a todos, bueno directo al grano... Estoy desarollando una aplicacion el la cual necesito colocar varios uploadfiles, para los cuales su funcionamiento debe ser ...
  #1 (permalink)  
Antiguo 31/01/2011, 09:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
uploadfile con Ajax

Hola a todos, bueno directo al grano...

Estoy desarollando una aplicacion el la cual necesito colocar varios uploadfiles, para los cuales su funcionamiento debe ser transparente para el usuario, no se debe recargar la pagina... ya que si la recargo pierdo los valores de otros elementos introducidos antes de cada upload... a ver si alguien me puede ayudar...

Ahora tengo un uploadfile con Jquery que funciona pero solo uno y si creo mas nada... ademas no puedo enviarle ningun dato obtenido de los controles lo cual es obligatorio, ya que de un checkbox proporciono el nombre con el que se va a almacenar el archivo, y un select me da el nombre de la carpeta donde se va a ubicar... Despues de guardar el archivo se debe continuar con otras operaciones...

De antemano agradezco mucho su colaboracion...
  #2 (permalink)  
Antiguo 31/01/2011, 15:40
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: uploadfile con Ajax

Hola:

Con Ajax no se pueden subir ficheros (al menos con los objetos XMLHttpRequest), y lo que se hace (también lo hacen las librerías) es enviar un formulario hacia un iframe oculto.

Resumiendo, si quieres subir más de un fichero, lo que puedes hacer es clonar el campo file las veces que creas conveniente...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 01/02/2011, 09:38
 
Fecha de Ingreso: octubre-2007
Mensajes: 4
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: uploadfile con Ajax

puedes usar una herramienta muy útil para multi-file que se llama "Uploadify" es muy buena aunque combinando tu imaginación y tu experiencia podrías hacer cosas buenas con el iframe y el file así como lo dijo caricatos !!!!
  #4 (permalink)  
Antiguo 01/02/2011, 10:55
 
Fecha de Ingreso: octubre-2010
Ubicación: Bogota
Mensajes: 28
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: uploadfile con Ajax

Hola,
Como ya te dijo Elbsoftsystem con uploadify lo puedes hacer, aquí puedes encontrar muy buenos ejemplos de upload con jquery:

[URL="http://www.miguelmanchego.com/2010/jquery-subir-archivos-usando-ajax/"]http://www.miguelmanchego.com/2010/jquery-subir-archivos-usando-ajax/[/URL]
  #5 (permalink)  
Antiguo 02/02/2011, 20:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: uploadfile con Ajax

Gracias he decidido utilizar swfupload funciona pero no de la manera que quiero, necesito crear una carpeta donde almacenar archivos, a veces la crea y guarda el archivo con el nombre que le ordeno pero al querer guardar otro archivo en la misma carpeta lo hace pero en la raiz de mi sitio... pego el codigo que tengo en espera que alguno d ustedes me pueda colaborar:

// Code for Session Cookie workaround
if (isset($_POST["PHPSESSID"])) {
session_id($_POST["PHPSESSID"]);
} else if (isset($_GET["PHPSESSID"])) {
session_id($_GET["PHPSESSID"]);
}

session_start();

// Check post_max_size (http://us3.php.net/manual/en/features.file-upload.php#73762)
$POST_MAX_SIZE = ini_get('post_max_size');
$unit = strtoupper(substr($POST_MAX_SIZE, -1));
$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));

if ((int)$_SERVER['CONTENT_LENGTH'] > $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) {
header("HTTP/1.1 500 Internal Server Error"); // This will trigger an uploadError event in SWFUpload
echo "POST exceeded maximum allowed size.";
exit(0);
}

// Settings

//Condicion para ver si llega el nombre de la carpeta y el archivo donde y con que almacenar
if(isset($_POST["carpeta"]) $$ isset($_POST["nombre"]))
{
$carpeta = $_POST["carpeta"];
$nombre = $_POST["nombre"];
if(!is_dir("uploads/$carpeta/")) //Si no existe la carpeta la creo
{
if (!mkdir( "uploads/$carpeta/", 0777))
$save_path = "uploads/";
else
// The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)
$save_path = "uploads/$carpeta/";
}
else
$save_path = "uploads/$carpeta/";

}

$upload_name = "Filedata";
$max_file_size_in_bytes = 2147483647; // 2GB in bytes
$extension_whitelist = array("pdf", "jpg", "gif", "png"); // Allowed file extensions
$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)

// Other variables
$MAX_FILENAME_LENGTH = 260;
$file_name = "";
$file_extension = "";
$uploadErrors = array(
0=>"There is no error, the file uploaded with success",
1=>"The uploaded file exceeds the upload_max_filesize directive in php.ini",
2=>"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
3=>"The uploaded file was only partially uploaded",
4=>"No file was uploaded",
6=>"Missing a temporary folder"
);

// Validate the upload
if (!isset($_FILES[$upload_name])) {
HandleError("No upload found in \$_FILES for " . $upload_name);
exit(0);
} else if (isset($_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) {
HandleError($uploadErrors[$_FILES[$upload_name]["error"]]);
exit(0);
} else if (!isset($_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) {
HandleError("Upload failed is_uploaded_file test.");
exit(0);
} else if (!isset($_FILES[$upload_name]['name'])) {
HandleError("File has no name.");
exit(0);
}

// Validate the file size (Warning: the largest files supported by this code is 2GB)
$file_size = @filesize($_FILES[$upload_name]["tmp_name"]);
if (!$file_size || $file_size > $max_file_size_in_bytes) {
HandleError("File exceeds the maximum allowed size");
exit(0);
}

if ($file_size <= 0) {
HandleError("File size outside allowed lower bound");
exit(0);
}

// Validate file name (for our purposes we'll just remove invalid characters)
$file_name = preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));
if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) {
HandleError("Invalid file name");
exit(0);
}

// Validate that we won't over-write an existing file
if (file_exists($save_path . $file_name)) {
HandleError("File with this name already exists");
exit(0);
}

// Validate file extension
$path_info = pathinfo($_FILES[$upload_name]['name']);
$file_extension = $path_info["extension"];
$is_valid_extension = false;
foreach ($extension_whitelist as $extension) {
if (strcasecmp($file_extension, $extension) == 0) {
$is_valid_extension = true;
break;
}
}
if (!$is_valid_extension) {
HandleError("Invalid file extension");
exit(0);
}

if(!isset($carpeta)
$save_path = "uploads/";
if(!isset($nombre)
$nombre = $filename;


//Aqui guardo el archivo
if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$nombre.".".$file_extension/)) {
HandleError("File could not be saved.");
exit(0);
}

exit(0);

/* Handles the error output. This error message will be sent to the uploadSuccess event handler. The event handler
will have to check for any error messages and react as needed. */
function HandleError($message) {
echo $message;
}

Etiquetas: ajax, uploadfile
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 01:38.