Pergunta sobre javascript, upload, php, ajax – Upload do arquivo PHP AJAX

1

Eu olhei tudo sobre stackoverflow ea internet geral e não consigo encontrar um simples uploader de arquivo AJAX (apenas submissão do formulário). Os que eu encontrei não são flexíveis o suficiente e não se encaixam no meu propósito. Se eu pudesse ajustar esse script para uploads de arquivos, seria ótimo:

<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();
 }

No HTML eu teria

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

obrigado

Sua resposta

3   a resposta
0

de arquivos. Pense nos problemas de segurança que isso causaria? E se eu colocar "/%USER%/Desktop/CreditCardsAndPasswords.txt" no seu campo str? Resumindo, você precisa encontrar e usar os uploaders 'não flexíveis' dos quais estava falando e terá que editá-los de acordo com suas necessidades. Ou isso, ou escreva você mesmo para se adequar ao seu propósito.

A maneira como a maioria dos uploaders 'ajax' trabalham é que eles criam dinamicamente elementos de arquivo de entrada Html e enviam umsubconjunto do seu formulário (apenas o elemento do arquivo) para um script PHP em seu site, que, em seguida, salva o arquivo em qualquer diretório temporário. Então, quando você enviar o restante do formulário, poderá "acompanhar" o resto do script e manipular qualquer processamento necessário com os arquivos enviados.

Existem muitos 'uploaders' de muitos ajax por aí. Basta fazer uma pesquisa e encontrar um, não posso acreditar que todos os que estão por aí não sejam bons o suficiente.

Oi, o problema é que eu preciso ter um único botão de upload, e quando alguém clica no arquivo, ele carrega automaticamente. Apenas um arquivo será carregado por vez. user1310420
7

Uploadify

E se você não quiser flash, você pode usar este;

AxUploader

Obrigado, acabei de usar o AxUploader. Isso é exatamente o que eu estava procurando 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);

    }
});

você a obterá usando echo phpinfo ();

você tem que definir o tamanho máximo do arquivo que você vai carregar. Por padrão, é 5mb eu acho. e também verificar a outra variável ini necessária para aumentar o tamanho dos dados de postagem.

Perguntas relacionadas