如果使用 kendoupload 存在,如何重命名文件?
Posted
技术标签:
【中文标题】如果使用 kendoupload 存在,如何重命名文件?【英文标题】:How to rename file if exist using kendoupload? 【发布时间】:2021-05-09 09:04:59 【问题描述】:我正在使用 KendoUI Jquery、MVC 的 ChunkUpload,我想我需要在文件进入控制器(ChunkSave)之前重命名文件,但我不知道我能够做到这一点。
我的块上传参考:https://demos.telerik.com/kendo-ui/upload/chunkupload?_ga=2.247157956.1737132689.1612402138-1671290078.1573535372
这是我的脚本
$(".fUploadSingle").kendoUpload(
async:
chunkSize: 10000000,
saveUrl: '@Url.Action("ChunkSave", "Streaming", new area = "" )',
removeUrl: "remove",
autoUpload: true
);
控制器:
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("~/Videos/Materials"), somemetaData.FileName);
AppendToFile(path, file.InputStream);
FileResult fileBlob = new FileResult();
fileBlob.uploaded = somemetaData.TotalChunks - 1 <= somemetaData.ChunkIndex;
fileBlob.fileUid = somemetaData.UploadUid;
return Json(fileBlob);
【问题讨论】:
这可能会有所帮助telerik.com/forums/prevent-selecting-files-with-same-filename 你只需要使用 select 事件并迭代你的文件名 (var filename = selected[i].name;) 【参考方案1】:由于您拥有autoUpload: true
,因此您无法在前端捕获重复的文件名。后端必须处理这种情况。后端可以用不同的文件名保存它(例如filename (1).doc
)。
如果您设置了autoUpload: false
,您可以通过实现select
事件来捕获重复的文件名。
【讨论】:
以上是关于如果使用 kendoupload 存在,如何重命名文件?的主要内容,如果未能解决你的问题,请参考以下文章