Pregunta sobre javascript, php, ajax, upload – Carga de archivos PHP AJAX

1

He buscado en todo el stackoverflow y el internet en general y no puedo encontrar un cargador de archivos AJAX simple (solo envío de formulario). Los que he encontrado no son lo suficientemente flexibles y no se ajustan a mi propósito. Si pudiera ajustar esta secuencia de comandos para subir archivos, sería genial:

<script type="text/javascript">
 function upload(str)
 {
 if (str.length==0)
 { 
document.getElementById("txtHint").innerHTML="";
 return;
  }
 if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("hint").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("GET","ajax/link.php?q="+str,true);
 xmlhttp.send();
 }

En el HTML tendría

<input type='file' onblur='upload(this.value)'>

Gracias

Tu respuesta

3   la respuesta
7

Aquí hay un simple cargador de archivos ajax

Subir

Y si no quieres flash, puedes usar este;

Axuploader

Gracias, acabo de usar AxUploader. Eso es exactamente lo que estaba buscando user1310420
0

No es así de fácil. No puedes usar ajax directamente para subir archivos. ¿Piensa en los problemas de seguridad que causaría? ¿Qué pasa si pongo "/%USER%/Desktop/CreditCardsAndPasswords.txt" en su campo de str? En resumen, debe encontrar y utilizar los cargadores "no flexibles" de los que hablaba y tendrá que editarlos según sus necesidades. O eso, o escríbalo usted mismo para que se ajuste a su propósito

La forma en que la mayoría de los cargadores 'ajax' funcionan es crear dinámicamente elementos de archivo de entrada Html y enviar unsubconjunto de su formulario (solo el elemento de archivo) a un script php en su sitio web, que luego guarda el archivo en cualquier directorio temporal. Luego, cuando envía el resto del formulario, puede "ponerse al día" con el resto de la secuencia de comandos y manejar el procesamiento necesario con los archivos cargados.

Hay muchos "cargadores" de ajax muchos por ahí. Solo haz una búsqueda y encuentra uno, no puedo creer que todos los que hay por ahí no sean lo suficientemente buenos.

Hola, el problema con eso es que necesito tener un botón de carga único, y una vez que alguien ha hecho clic, ha subido el archivo que se carga automáticamente. Solo se cargará un archivo a la vez. user1310420
0
var data = new FormData();
data.append("image_upload",jQuery("#file_upload_input")[0].files[0]);
jQuery.ajax({
    url: 'url',
    type: 'POST',
    data: data,
    cache: false,
    processData: false, // Don't process the files
    contentType: false, // Set content type to false as jQuery will tell the server its a query string request
    success: function(data, textStatus, jqXHR)
    {
        console.log(data, textStatus, jqXHR);
    },
    error: function(jqXHR, textStatus, errorThrown)
    {

        console.log(jqXHR, textStatus, errorThrown);

    }
});

Por favor, también compruebe la variable ini post_max_size, la obtendrá utilizando echo phpinfo ();

Tienes que establecer el tamaño máximo de archivo que vas a subir. Por defecto es de 5 mb, creo. y también verifique la otra variable ini requerida para aumentar el tamaño de los datos de publicación.

Preguntas relacionadas