ASP.NET Загрузка файлов JavaScript Ajax

#c# #javascript #asp.net #ajax #image-uploading

#c# #javascript #asp.net #ajax #загрузка изображений

Вопрос:

Я в основном ищу сообщение и изображение с HTML-страницы на asp.net Страница C #, а затем эти данные будут отправлены на сервер.

Я нашел много решений для предприятий и веб-форм, но есть ли другой способ сделать это, избегая веб-форм? Я не большой поклонник сгенерированного HTML. В принципе, псевдокод будет выглядеть следующим образом.

 <script type="text/javascript">
window.onload = function() {
    button.onclick = function() {
        http = new XMLHttpRequest();
        url = "imageuploader.aspx";
        params = <dunno how to post file data. Help?>
        http.open("POST", url, true);
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.onreadystatechange = function () {
                  Test a bunch of stuff to see if image has been uploaded or we're still working on it
            }
    }
 }
 </script>
  

imageuploader.aspx

 <%@ Page language="C#" validateRequest=false %>
<script language="C#" runat="server">
    private void Page_Load (object sender, System.EventArgs e) {
         <no clue what to do here since I've never done file uploading before>
    }
<script>
  

Ответ №1:

Прежде всего, XMLHttpRequest не поддерживает загрузку файлов. Вы можете использовать плагин формы jQuery, плагин формы использует скрытый элемент iframe, чтобы помочь с задачей. Это распространенный метод, но он имеет присущие ему ограничения. Элемент iframe используется в качестве цели операции отправки формы, что означает, что ответ сервера записывается в iframe.

Также есть несколько других вариантов,

http://www.phpletter.com/Demo/AjaxFileUpload-Demo/

http://pixelcone.com/jquery/ajax-file-upload-script/

Теперь, на стороне сервера, запрос.Files предоставляет вам доступ ко всем размещенным файлам в коллекции array.