Вопрос по javascript, php, ajax – PHP AJAX загрузка файла

1

Я просмотрел весь стекопоток и общий Интернет и не могу найти простой загрузчик файлов AJAX (Просто отправка формы). Те, которые я нашел, недостаточно гибки и не соответствуют моей цели. Если бы я мог настроить этот скрипт для загрузки файлов, было бы здорово:

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

В HTML я бы

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

Спасибо

Ваш Ответ

3   ответа
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);

    }
});

Также проверьте наличие переменной ini post_max_size, вы получите ее используя     echo phpinfo ();

Вы должны установить максимальный размер файла, который вы собираетесь загрузить. По умолчанию это 5мб я думаю. а также проверьте другую переменную ini, необходимую для увеличения размера почтовых данных.

0

Это не так просто. Вы не можете напрямую использовать ajax для загрузки файлов. Подумайте о проблемах безопасности, которые могут вызвать? Что если я добавлю & quot; /% USER% / Desktop / CreditCardsAndPasswords.txt & quot; в вашем поле str? Короче говоря, вам нужно найти и использовать эти «негибкие» файлы. загрузчики, о которых вы говорили, и должны будут редактировать их в соответствии с вашими потребностями. Либо так, либо напишите один, соответствующий вашим целям.

Способ наиболее "ajax" загрузчики работают, они динамически создают элементы входного файла Html и представляютsubset вашей формы (только элемент файла) в сценарий php на вашем сайте, который затем сохраняет файл в любой временный каталог. Затем, когда вы отправляете оставшуюся часть формы, вы можете «наверстать упущенное»; с остальной частью сценария и обрабатывать все необходимые операции с загруженными файлами.

Есть много много ajax 'загрузчиков & apos; там Просто выполните поиск и найдите его, я не могу поверить, что все из них не достаточно хороши.

Error: User Rate Limit Exceeded
7

Uploadify

И если вам не нужна вспышка, вы можете использовать эту;

AxUploader

Error: User Rate Limit Exceeded

Похожие вопросы