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我这边使用上层代码上传控件,可以获取到上传文件的路径
我想通过 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我这边使用上层代码上传控件,可以获取到上传文件的路径