2015-08-12 4 views
1

Я пытаюсь загрузить файл через сообщение и ajax, но я просто получил URL-адрес для изменения.Загрузить файл через собственную веб-службу api

Я не хочу изменить URL, как этот
http://localhost:8080/webportal.html?file=C%3A%5CUsers%5CVM9%5CDesktop%5Ctest5.txt

Я хочу файл загружен

Это мой код ...

HTML 

<form id="uploadForm"> 
    <label>Upload File:</label><br/> 
    <input name="file" type="file" /> 
    <input type="submit" value="Submit" /> 
</form> 

JavaScript 
function UploadTestCase() 
{ 
    $(document).ready(function (e) { 
     $("#uploadForm").on('submit',(function(e) { 
      e.preventDefault(); 
      var requireData = new FormData(this); 
      $.ajax({ 
       url: "http://ip/webapi/upload?project=test", 
       type: "POST", 
       data: requireData, 
       contentType: false, 
       cache: false, 
       processData: false 
      }) 
      return false; 
     })); 
    }); 
} 

Любая идея?

Благодаря

+0

использовать return false после $ .ajax ({...}); return false; И если есть только вход в файл, то установите параметр ajax 'processData' и 'contentType' на false –

+0

да, спасибо, но ничего не изменилось ... btw, веб-служба api требует Заголовок: enctype = multipart/form- данные. – user5121761

+0

Вы не можете использовать «это», чтобы получить доступ к форме внутри кода ajax .. получить переменную после предотвращения кода по умолчанию .. как var data = new FormData (this) .. И передать это параметру данных ajasx. –

ответ

0
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      <html xmlns="http://www.w3.org/1999/xhtml"> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <title>Untitled Document</title> 
      <script type="text/javascript" src="jquery.min.js"></script> 
      <script type="text/javascript"> 
      $(function(){ 
       $('#uploaad_file').on('submit', function(e){ 
        var data = new FormData(this); 

        e.preventDefault(); 
        $.ajax({ 
         url: 'index.php', 
         data : data, 
         processData:false, 
         contentType: false, 
         type: 'POST',   
         success: function(){ 
          console.log(r); 
         }, 
         error: function(){ 
          console.log(arguments); 
         } 
        }) 
        return false; 
       }) 
      }) 
      </script> 
      </head> 

      <body> 
      </body> 
      <form id="uploaad_file" enctype=""> 
      <input type="file" name="file" id="file"> 
      <input type="submit" value="upload"> 
      </form> 
      </html> 

Я ahve использовал этот код. И он успешно разместил данные формы на моей стороне сервера. Я могу просмотреть массив $ _FILES с print_r. И все выглядит идеально.

Смежные вопросы