2016-08-25 12 views
0

ASP.NETでXMLHttpRequestとFormDataを使用してExcelファイルをアップロードしようとしていますが、ASP.NETでRequest.FIlesがnullになっています。 Asp.netページでは、Request.Filesがnullになりつつあります。ASP.NET

function BulkUploadUsers(e){ 
 
    var url = "/BC/Product/Modules/UserManagement/BulkUpload.aspx?action=import"; 
 
    var fd = new FormData(); 
 
    fd.append("ImportWorkOrderExcelFile", document.getElementById('ctl01_ImportFcpFile').files[0]); 
 
    var xhr = new XMLHttpRequest(); 
 
    xhr.open("POST", url, true); 
 
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
 
    xhr.setRequestHeader('X-CSRF-Token', document.getElementById("_RequestVerificationToken").value); 
 
    xhr.setRequestHeader("Content-Type", "multipart/form-data"); 
 
    xhr.send(fd); 
 
}
<div> 
 
     <input type="file" id="ImportFcpFile" runat="server" onchange="BulkUploadUsers(this)"/>  
 
    </div>

サーバー側ここ

protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
       var aa = FindControl("ImportFcpFile"); 
       HttpPostedFile file = Request.Files["ImportUserExcelFile"]; 

     } 
     catch (Exception ex) 
     { 
     } 
    } 
+0

を好きな名前を付けて保存を見逃していると思います。 – David

+0

Request.Files [0]を使用してファイルにアクセスする –

+0

私はむしろHttpFileCollectionを使用したいと思います。fileCollection = HttpContext.Current.Request.Files; –

答えて

0

は私が

何をすべきかです
HttpFileCollection fileCollection = HttpContext.Current.Request.Files; 
string savedfile = ""; 
      for (int i = 0; i < fileCollection.Count; i++) 
      { 
       try 
       { 
        HttpPostedFile upload = fileCollection[i]; 
        int f = fileCollection[i].ContentLength; 
        string filename = "/ProductImages/" + fileCollection[i].FileName; 
        upload.SaveAs(Server.MapPath(filename)); 
        savedfile += fileCollection[i].FileName; 
       } 
       catch (Exception ex) 
       { 
        List<string> ff = new List<string>(); 
        ff.Add(ex.Message.ToString()); 
        System.IO.File.WriteAllLines(Server.MapPath("/ProductImages/Error.txt"), ff); 
       } 

      } 

これは私が使用したjavascriptコードです。私はあなたには、いくつかの事柄

 function handleDnDFileSelect(event) { 


      /* Read the list of all the selected files. */ 
      var files = event.dataTransfer.files; 

      /* Consolidate the output element. */ 
      var form = document.getElementById('form1'); 

     var fd= new FormData(form); 

      for (i = 0; i < files.length; i++) { 
       fd.append(files[i].name, files[i]); 
      } 
      var xhr = new XMLHttpRequest(); 
     xhr.onreadystatechange = function() { 
      if (xhr.readyState == 4 && xhr.status == 200 && xhr.responseText) { 
       alert("upload done!"); 
      } else { 
       //alert("upload failed!"); 
      } 
     }; 
     xhr.open('POST', "/BC/Product/Modules/UserManagement/BulkUpload.aspx"); 
     // xhr.setRequestHeader("Content-type", "multipart/form-data"); 
     xhr.send(fd); 

     } 

私はファイルだけを反復処理し、私は、AJAXコードで `ImportUserExcelFile`と呼ばれるものは何もありません

+0

です。こんにちはMysterio HttpContext.Current.Request.Filesはヌル –

+0

です。 IISレベルで必要なことはありますか? –

+0

番号。あなたはjqueryを知っていますか? jqueryを使用する方がはるかに簡単です –

関連する問題