2015-10-30 1 views
0

Я разработал XMLHTTPRequest Formdata Uploader с помощью upload api. My Javascript запускается без ошибок, а статус загрузки заканчивается с . Я использую windows Server 2008 ans ASP Classic. Но я думаю, ASP Classic не проблема. Я думаю, у меня проблема с передачей данных. Ниже мой код.HTML5 Загрузка не хранит файл на сервере

 function sendForm(form, btn) { 
     for (x=0; x < document.getElementById("auswahl").files.length; x++){  
      uploadFiles(document.getElementById("auswahl")); 
     } 
    } 
    var url= "http://www.centil-europe.ch/db/Images/test/"; 
    //$(document).ready(function(){ 
    // document.getElementById('upload').addEventListener('change', function(e) { 
     function uploadFiles(filecntrl){ 
      var file = filecntrl.files[0]; 
      var xhr = new XMLHttpRequest(); 
      xhr.file = file; // not necessary if you create scopes like this 
      xhr.addEventListener('progress', function(e) { 
       var done = e.position || e.loaded, total = e.totalSize || e.total; 
       console.log('xhr progress: ' + (Math.floor(done/total*1000)/10) + '%'); 
      }, false); 
      if (xhr.upload) { 
       xhr.upload.onprogress = function(e) { 
        var done = e.position || e.loaded, total = e.totalSize || e.total; 
        console.log('xhr.upload progress: ' + done + '/' + total + ' = ' + (Math.floor(done/total*1000)/10) + '%'); 
       }; 
      } 
      xhr.onreadystatechange = function(e) { 
       if (4 == this.readyState) { 
        console.log(['xhr upload complete', e]); 
       } 
      }; 
      xhr.open('post', url, true); 
      xhr.setRequestHeader("Content-Type","multipart/form-data"); 
      var formData = new FormData(); 
      formData.append("thefile", file); 
      xhr.send(formData); 
     } 
    // }, false); 
    //}); 

И HTML-Часть

 <BODY bgcolor="#FFFFFF" link="#999900" vlink="#CCCC33" alink="#999966"> 
    <table cellSpacing="0" cellPadding="4" width="767" align="center" height="100" border="0" bgcolor="#FFFFFF"> 
     <tbody> 
     <tr> 
      <td vAlign="middle" width="100%" height="100" bgcolor="#F5F5F5"> 
     <FORM METHOD="POST" ENCTYPE="multipart/form-data" id="iduploadfrm"> 
      <Input Type="hidden" Name="ID" value="<%=ID%>"> 

      <TABLE BORDER=0 class="Tabelle"> 
     <tr> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td><b>File zum uploaden ausw&auml;hlen:</b><br> 
      <input type=FILE size=50 name="FILE1" class="Textfield" id="auswahl" multiple> 
      </td> 
     </tr> 
     <tr><td><!--//Database&nbsp;<INPUT TYPE=RADIO NAME="saveto" value="database">//--> 
     </td> 
     </tr> 
     <tr align="right"> 
      <td> 
      <INPUT TYPE=SUBMIT VALUE="Upload!" class="Button"> 
      </td> 
     </tr> 
     </TABLE> 
      <!-- The table listing the files available for upload/download --> 
     <table role="presentation" class="table table-striped" id="tblpresentation"> 
     <tbody class="files"> 
      <tr class="template-upload fade in" id="filetbl" style="visibility:hidden"> 
       <td width="17%"> 
        <span id="idimage" class="preview"></span> 
       </td> 
       <td width="16%"> 
        <p class="name">&nbsp;</p> 
        <strong class="error text-danger"></strong> 
       </td> 
       <td width="26%"> 
        <p class="size" id="size">&nbsp;</p></td> 
       <td width="41%"> 
        <button class="btn btn-primary start" id="idstart" onClick="sendForm(document.getElementById('iduploadfrm'),this);"> 
         <span>Start</span> 
        </button> 
        <button class="btn btn-warning cancel"> 
         <i class="glyphicon glyphicon-ban-circle"></i> 
         <span>Cancel</span> 
        </button> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
    </FORM> 
    </table> 

У меня есть таблица предварительного просмотра изображения с помощью кнопки. При нажатии этой кнопки событие вызывает функцию sendForm с кнопкой в ​​качестве параметра. Позже я проверю, что нажата кнопка id, чтобы загружать изображения отдельно для каждого просматриваемого изображения. Таким образом, эта функция вызывает функцию uploadFiles с параметром file-control. Код работает без проблем, но изображение не хранится в каталоге серверов. Пожалуйста, можете мне сказать, какая проблема у меня?

На стороне сервера Папка имеет IIS, и Network_Service имеет права на чтение и запись.

спасибо за любое решение Рене

+0

«Я думаю, у меня проблема передачи данных» - Что вы сделали с этим этим предположением? Вы просмотрели вкладку «Сеть» в Инструментах разработчика вашего браузера и видели, что файл не находится в запросе? – Quentin

+0

Да, я отметил, что, как уже упоминалось, статусы загрузки, например, 40% 70%, 100% и успех загрузки возвращаются правильно. Возможно, проблема с типом данных? Я думаю, что файл должен будет передать двоичный файл и быть написанным на стороне сервера в новом файле? –

ответ

0

Вы сказали:

xhr.setRequestHeader("Content-Type","multipart/form-data"); 

... который перепишет заголовок по умолчанию и уничтожить информацию разделительную (так что сервер вонн» t знать, где заканчивается одна часть, и начинается следующая).

Не делайте этого.

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