2015-06-24 5 views
0

Мы создаем веб-страницу, и мне нужно управлять файлами. Я использую iframe для загрузки файла. Но на самом деле я не знаю, что происходит при использовании этого. На стороне сервера мы используем Java. Это мой код:Загрузка файла через iFrame

$(document).ready(function() { 

    $("#formsubmit").click(function() { 

     var iframe = $('<iframe name="postiframe" id="postiframe"></iframe>'); 

     $("body").append(iframe); 

     var form = $('#theuploadform'); 
     form.attr("action", "http://localhost:13000/auth/login"); 
     form.attr("method", "post"); 

     form.attr("encoding", "multipart/form-data"); 
     form.attr("enctype", "multipart/form-data"); 

     form.attr("target", "postiframe"); 
     form.attr("file", $('#userfile').val()); 
     form.submit(); 

     $("#postiframe").load(function() { 
      var iframeContents = this.contentWindow.document.body.innerHTML; 
      $("#textarea").html(iframeContents); 
     }); 

     return false; 

    }); 

}); 

(. Я скопировал код из Интернета, но я не понимаю)

Может кто-нибудь сказать мне, что происходит при нажатии на кнопку отправить? Что отправляется? Файл как байты? Поскольку я хочу написать наш серверный обработчик java, мне нужно это понять. Думаю, я потратил слишком много времени, пытаясь понять это.

Сначала я думал, что мы можем отправить файл через метод POST jQuerys, поскольку он работал для аутентификации пользователя. Но это не так.

ответ

0
  1. Для бэкэнда вам нужен контроллер поймать запрос HTTP и класс Java с атрибутом:

сказать ваш класс Java называется File.java

private List<MultipartFile> file; 
String saveDirectory = System.getProperty("catalina.home"); 
    List<MultipartFile> ListaFajlova = File.getFile(); 
    List<String> fileNames = new ArrayList<String>(); 

    if (null != ListaFajlova && ListaFajlova.size() > 0) { 
     for (MultipartFile multipartFile : ListaFajlova) { 

      String fileName = multipartFile.getOriginalFilename(); 
      if (!"".equalsIgnoreCase(fileName)) {    
       multipartFile 
         .transferTo(new File(saveDirectory + File.separator+fileName)); 
       fileNames.add(fileName); 
      } 
     } 
    } 

Таким образом, вы сохраните файлы ваш файл saveDirectory и вы получите список имен файлов, которые вы сохраняете в db для облегчения доступа.

Надеюсь, это поможет.

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