Kendo 上传到 Azure 存储

Kendo Upload to Azure Storage

我想通过 kendo 文件上传,例如 pdf 或文本。我在将文件名或路径发送到我的控制器时遇到了一些问题

这是我的看法

<div class="editor-field" id="files">
        @(Html.Kendo().Upload()
        .Name("Documents")
         .Async(async => async
            .Save("UploadDocument", "Controller"))
      .Multiple(false)
      .ToClientTemplate())

    </div>

这是我的 ActionController

  public ActionResult UploadDocument()
        {

            var doc = Request.Files["document"];
            var inputstream = doc.InputStream;
            var filename = doc.FileName;
            var doctype=doc.ContentType;
            var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["AzureStorageConnection"].ConnectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("document");
            container.CreateIfNotExists();
            var permission = container.GetPermissions();
            string uniqueBlobName= string.Format("documents/{0}", filename);
            CloudBlockBlob blob = container.GetBlockBlobReference(uniqueBlobName);
            blob.Properties.ContentType = doctype;
            blob.UploadFromStream(inputstream);
            return Json(new { success = true });

        } 

我是否需要传递值或 JS 函数的模型?

@(Html.Kendo().Upload().Name("Documents")

根据您的视图代码,您将上传控件的名称设置为'Documents'。要获取上传文件的信息,您还需要在您的控制器中使用此名称 'Documents' 而不是 'document'。请按以下方式更改您的代码。

var doc = Request.Files["Documents"];
var filename = doc.FileName;

刚刚测试了Kendo我这边使用上层代码上传控件,可以获取到上传文件的路径