簡體   English   中英

Kendo UI多個文件上傳問題

[英]Kendo UI multiple files upload issue

我正在使用Kendo文件上載控件來上載多個文件。 只有很少的文件被上傳(尤其是第一個和最后一個)或一些隨機的文件。 有什么解決辦法嗎?

Index.cshtml:

<input name="files" id="files" type="file" multiple="multiple" />

JS文件:

$("#files").kendoUpload
    ({
        async: {
            saveUrl: "/Controller/GetUserUploadedFiles",
            removeUrl: "/Controller/Remove",
            autoUpload: false,
            allowmultiple: true
        },
        select: function (e) {
            onSelect(e);
        },
        success: function (e) {
        },
        error: function (e) {
        }
    });

//控制器方法

[HttpPost]
   public void GetUserUploadedFiles(IEnumerable<HttpPostedFileBase> files)
   {   
     //Custom logic here
   }

另外,如果我可以在一個控制器方法調用中將所有文件都設為Enumerable,而不是對多個文件多次調用它,那將是很好的。

我有什么想念的或者做錯了嗎?

謝謝,斯里尼

此代碼將上載在Kendo Upload中選擇的所有文件,然后在每個文件上運行代碼。

[HttpPost]
public void GetUserUploadedFiles()
{   
    Request.Content.LoadIntoBufferAsync().Wait();
    var result = Task.Factory
                 .StartNew(() => Request.Content.ReadAsMultipartAsync().Result,
                  CancellationToken.None,
                  TaskCreationOptions.LongRunning,
                  TaskScheduler.Default).Result;

    var contents = result.Contents;
    HttpContent httpContent = contents.First();        

    Stream file = httpContent.ReadAsStreamAsync().Result;

    if (file.CanRead)
    {
        // Code that will be executed on each file
    }
}

您可以使用以下方法獲取文件名:

string filename = httpContent.Headers.ContentDisposition.FileName.Replace("\"", string.Empty);

您可以使用以下方法獲取上載的文件媒體類型:

string uploadedFileMediaType = httpContent.Headers.ContentType.MediaType;

IIRC,kendo批處理選項僅在同時選擇時(瀏覽,然后選擇多個文件)將文件作為集合上傳。 選擇其他文件后,它們將在另一個請求中發送。 可以強制在同一請求期間發布文件的唯一方法是使用同步模式而不是異步模式。 祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM