Click here to Skip to main content
15,889,116 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello,

It is possible to upload multiple files in onedrive(skydrive) using WL.upload ? I tried something but I always get an error like "element must be an html input element" or something like this.

Thanks.
Posted

1 solution

I find the answer, but not in javascript, in c# code.

Html input:
HTML
<p>Upload Files</p>
<div id="save-to-skydrive-dialog-content">
    @using (Html.BeginForm("UploadFiles", "Auth", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="file" multiple />
        <input type="submit" value="Upload File"/>
    }
</div>


C# method:
C#
[HttpPost]
     public async Task<actionresult> UploadFiles()
     {
         var files = Request.Files;

         if (Request.Files.Count > 0)
         {
             LiveLoginResult loginStatus = await authClient.InitializeWebSessionAsync(HttpContext);
             if (loginStatus.Status == LiveConnectSessionStatus.Connected)
             {
                 connectedClient = new LiveConnectClient(this.authClient.Session);
                 LiveOperationResult result = await connectedClient.GetAsync("me/skydrive");
                 string folderId = (string)result.Result["id"];

                 for (var i = 0; i < Request.Files.Count; i++)
                 {
                     var fileName = Request.Files[i].FileName;
                     var fileStream = Request.Files[i].InputStream;

                     LiveOperationResult uploadResult = await connectedClient.UploadAsync(folderId, fileName, fileStream, OverwriteOption.Overwrite);
                 }
             }
         }
         return View("~/Views/Home/Index.cshtml");
     }</actionresult>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900