簡體   English   中英

劍道塊上傳不拆分上傳的文件

[英]Kendo chunk upload not split the uploaded file

我是使用kendoUpload控件( Kendo UI v2014.3.1316 )的新手,帶有chunk上傳選項。 我有一個 web 應用程序,並且使用kendoupload控件上傳文件,它需要塊上傳功能,因為有機會上傳更大的文件。 請在下面查看我的代碼。

html

<input name="upload" id="mediaflUpload" type="file" />

.js

 $("#mediaflUpload").kendoUpload({
    async: {

        chunkSize: 5000000, // Will separate the file into chunks of size 5000000 bytes.
        concurrent: true, // Will upload all files simultaneously.
        autoRetryAfter: 300, // Will attempt a failed chunk upload after 300ms.
        maxAutoRetries: 4, // Will attempt the same failed chunk upload 4 times.
        saveUrl: "/File/ChunkSave",
        removeUrl: "/File/Remove",
        autoUpload: true
    },
    multiple: false,
    success: OnSuccessMediaFileUpload,
    upload: OnUploadMediaFileUpload,
    error: OnErrorMediaFileUpload
});

function OnUploadMediaFileUpload(e) {
debugger;
//var data = result.response;

var chunkMetaData = {
    UploadUid: "mediaflUpload",
    FileName: '',
    ContentType: '',
    ChunkIndex: 1,
    TotalChunks: 1,
    TotalFileSize: 30000000
};

e.data = {
    metaData: JSON.stringify(chunkMetaData)
};
}

控制器

    public ActionResult ChunkSave(IEnumerable<HttpPostedFileBase> files, string metaData)
    {
        if (metaData == null) { 
            return Save(files);
        }

        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(metaData));
        var serializer = new DataContractJsonSerializer(typeof(ChunkMetaData));
        ChunkMetaData somemetaData = serializer.ReadObject(ms) as ChunkMetaData;
        string path = String.Empty;
        // The Name of the Upload component is "files"
        if (files != null)
        {
            foreach (var file in files)
            {
                //path = Path.Combine(Server.MapPath("~/App_Data"), somemetaData.FileName);

                //AppendToFile(path, file.InputStream);
            }
        }

        FileResult fileBlob = new FileResult();
        fileBlob.uploaded = somemetaData.TotalChunks - 1<= somemetaData.ChunkIndex;
        fileBlob.fileUid = somemetaData.UploadUid;

        return Json(fileBlob);
    }

但是我有一個困惑,kendo chunk 沒有按照chunkSize變量分割文件。 如果我上傳 30 MB 的文件,它不會拆分 5 MB 的塊。 是否需要任何額外的編碼? 我不是chunk上傳配置方面的專家。

升級似乎是最好的方法 - 該功能是在 2017 年實現的,而您使用的是 2014 年版本。

在我的問題中,我認為這是版本問題。 我用的是Kendo UI v2014.3.1316版本

請看下面的截圖。

在此處輸入圖片說明

我還檢查了發布歷史頁面。

在此處輸入圖片說明

如果有人有建議,請指教。

編輯

我更新了 Kendo UI 版本 ( 2018.3.1017 ) 並實現了 Kendo MVC Chunk Upload,現在它工作正常。 請參閱以下鏈接到https://demos.telerik.com/aspnet-mvc/upload/chunkupload參考。

暫無
暫無

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

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