0

我想通过 pdf 或 text 等剑道文件上传。我在将文件名或路径发送到我的控制器时遇到了一些问题

这是我的看法

<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 函数吗?

4

1 回答 1

0

@(Html.Kendo().Upload().Name("文档")

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

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

我刚刚使用我这边的上层代码测试了剑道上传控件,我可以得到上传文件的路径。

于 2017-08-15T05:57:23.527 回答