将多个文件上传到onedrive?
问题描述:
您好,
可以使用WL.upload上传onedrive(skydrive)中的多个文件吗?我尝试了一些东西,但我总是得到一个像元素必须是一个html输入元素的错误。或类似的东西。
谢谢。
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.
答
我找到答案,但不是在javascript中,在c#代码中。
Html输入:
I find the answer, but not in javascript, in c# code.
Html input:
<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#方法:
C# method:
[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>