Foros del Web » Programando para Internet » Javascript »

codigo para adjuntar archivos

Estas en el tema de codigo para adjuntar archivos en el foro de Javascript en Foros del Web. buenos dias quisiera saber si existe la posibilidad de cuando se este utilizando el código para adjuntar archivos pueda validar que solo sean de extension ...
  #1 (permalink)  
Antiguo 15/05/2015, 13:14
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 1 mes
Puntos: 1
codigo para adjuntar archivos

buenos dias quisiera saber si existe la posibilidad de cuando se este utilizando el código para adjuntar archivos pueda validar que solo sean de extension pdf en el momento que el usuario le de clic a examinar o colocar alguna validacion de cualquier tipo antes de hacer submit a mi pagina, no me gusta que fuera despues porque tendria que estar controlando la información de los demas objetos para que no los pierda el codigo es el siguiente:

<script type="text/javascript">
var numero = 0;

// Funciones comunes
c= function (tag) { // Crea un elemento
return document.createElement(tag);

}
d = function (id) { // Retorna un elemento en base al id
return document.getElementById(id);
}
e = function (evt) { // Retorna el evento
return (!evt) ? event : evt;
}
f = function (evt) { // Retorna el objeto que genera el evento
return evt.srcElement ? evt.srcElement : evt.target;
}

addField = function () {
document.getElementById('etiqueta').style.display = "none";
container = d('files');

span = c('SPAN');
span.className = 'file';
span.id = 'file' + (++numero);

field = c('INPUT');
field.name = 'archivos[1]';
field.type = 'file';
field.size = '5';

a = c('A');
a.name = span.id;
a.href = '#';
a.onclick = removeField;
a.innerHTML = 'Quitar';

span.appendChild(field);
span.appendChild(a);
container.appendChild(span);
}
removeField = function (evt) {
document.getElementById('etiqueta').style.display = "inline";
lnk = f(e(evt));
span = d(lnk.name);
span.parentNode.removeChild(span);
}

<html>

<dl>
<dt><label id="etiqueta" style="display:inline;" href="#" onclick="addField()" accesskey="5">Agregar Archivo</label></dt>
<dd><div id="files"></div></dd>
</dl>
</html>
  #2 (permalink)  
Antiguo 15/05/2015, 14:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: codigo para adjuntar archivos

Esto es algo que puedes hacer ya sea con HTML, JavaScript o PHP, aunque lo ideal es que lo hagas con los tres y, aún más importante, con PHP, puesto que el usuario no puede modificar lo que sucede en el lado del servidor.

En el elemento HTML, puedes usar el atributo accept.

Código HTML:
Ver original
  1. <input type = "file" accept = "application/pdf" />

Con JavaScript, puedes tomar la extensión del archivo a partir del último punto que es en donde empieza el nombre de la extensión, para lo cual puedes usar los métodos substr, para tomar la porción del nombre del archivo en donde está la extensión, y lastIndexOf, para indicar el punto desde el cual el método substr tomará la parte del nombre que se necesita.

Código Javascript:
Ver original
  1. var input = document.querySelector("[type=file]"), //Tomamos al <input type = "file" />
  2.     posPunto = input.value.lastIndexOf("."), //Tomamos la posición del último punto
  3.     extension = input.value.substr(input.value, posPunto + 1); //Tomamos la extensión
  4.  
  5. //Como la extensión puede no estar en minúsculas, la convierto con el método 'toLowerCase'
  6. //Una vez convertida a minúsculas, verifico si no es igual a 'pdf'
  7. if (extension.toLowerCase() != "pdf"){
  8.     alert("El archivo no es un PDF");
  9. }

Y con PHP, puedes usar las funciones de FileInfo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 15/05/2015 a las 18:39 Razón: Corrección
  #3 (permalink)  
Antiguo 15/05/2015, 17:40
Avatar de jcamacho  
Fecha de Ingreso: marzo-2008
Mensajes: 72
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: codigo para adjuntar archivos

demasiado buena y explicada tu respuesta muchas gracias lo probare y respondere como me fue muchas gracias.....
  #4 (permalink)  
Antiguo 16/05/2015, 02:52
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: codigo para adjuntar archivos

Si lo que quieres es traer los datos del array B que no existen en el array A, puedes usar array_diff(), y en el caso de querer unirlas, puedes usar array_merge().
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios

Etiquetas: ajax
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 14:51.