asp.net - microsoft - visual studio installer
ASP.net-Carga múltiple con jQuery Complemento de carga de archivos múltiples (4)
Sé cómo subir con el control FileUpload de ASP.net.
Lo que quiero hacer es utilizar este plugin de carga de múltiples archivos jQuery para subir varios archivos.
Esto es exactamente lo que hace cuando se seleccionan varios archivos para cargar:
<input type="file class="multi MultiFile" id="MultiFile1_F3" name="file1[]" style="position: absolute; top: -3000px;">
Pero no puedo entender cómo manipular estos archivos desde asp.net. He intentado usar Request.Files como lo indica el siguiente enlace: ASP.Net Carga de varios archivos después de elegirlos de jQuery
Eso no funciona. Creo que solo funciona para controles marcados con runat = "server" en tiempo de compilación.
¿Alguien sabe como hacer esto? Tal vez algo en Request.Form ...?
¡Gracias por tu ayuda!
Ha pasado un tiempo desde que hice ese tipo de cosas en .NET, pero una vez que comienzas a clonar entradas de formulario de forma dinámica, creo que tienes que ir a Request.Form y encontrar los valores enviados de forma manual. Escribí el código jQuery para clonar algunas entradas (que no sean de archivo) con identificadores secuenciales aquí . Siempre que tenga identificadores únicos, puede ejecutar un ciclo para ver si Request.Form ["MultiFile1_F" + counter] existe e ir desde allí.
Dos cosas para verificar:
- Asegúrese de que su formulario tenga el atributo enctype = "multipart / form-data" establecido. Esto es necesario para habilitar las cargas.
- Asegúrese de que todas las entradas de archivo tengan establecidos los atributos id y name. Por alguna razón, si no establece ambos, suceden cosas extrañas.
Además, runat = "server" no debería tener nada que ver con si Request.Files funciona o no; esto es más una cuestión de que el navegador realmente publique los archivos.
Este plugin jQuery le daba a cada control de entrada generado exactamente el mismo atributo de nombre.
Por esta razón, los archivos no se publicaron.
Creé mi propia solución de JavaScript.
Voy a publicar un enlace al código en un comentario.
Editar
Revisé esto y descubrí que lo que estaba tratando de hacer no era muy difícil en absoluto. Obtuve el plugin de carga de archivo jquery múltiple para que funcione bien con mi formulario aspx. No sé por qué estaba teniendo tantos problemas antes.
1.) Incluye la biblioteca jQuery en el formulario web:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" />
2.) Consulte el plugin de archivos múltiples en el formulario web ( Descárguelo aquí ):
<script src="jquery.MultiFile.pack.js" type="text/javascript">
3.) Agregue una entrada de archivo en su formulario web con class = "multi":
<input type="file" class="multi" />
4.) Ejecute algún código o llame a un método como este en el envío del formulario:
void SendMail(string from, string to, string subject, string body, string smtpServer)
{
// create mail message
MailMessage mail = new MailMessage(from, to, subject, body);
// attach posted files
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFile file = Request.Files[i];
mail.Attachments.Add(new Attachment(file.InputStream, file.FileName));
}
//send email
new SmtpClient(smtpServer).Send(mail);
}
Esto es todo lo que tuve que hacer para adjuntar varios archivos a un correo electrónico enviado desde una página aspx.
Si desea aumentar el tamaño total de los archivos que se pueden cargar, agréguelo al archivo web.config:
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="30720"/>
</system.web>
El tiempo de ejecución se mide en segundos y maxRequestLength se mide en kilobytes. En este ejemplo, la solicitud expirará después de 4 minutos y permitirá una solicitud de 30 MB.
Recomiendo encarecidamente Uploadify como un cargador de archivos múltiples. Utiliza jquery y flash para permitir al usuario cargar varios archivos a la vez a través de ctrl y hacer clic en todos los archivos deseados. A continuación, muestra una cola de carga de los archivos y elimina el archivo de la cola al finalizar. También le permite especificar qué extensión permitirá al usuario cargar también, lo que le impide tener que hacer la validación de la extensión.
EDITAR:
Si no quieres usar flash, Ajax Upload también funciona muy bien. Si los usuarios del sitio de la empresa de mi sitio no tienen la versión correcta del flash que funciona mejor con uploadify, cambiaré a Ajax Upload. Ambos trabajan muy bien para mí.