File upload 剑道上传-更改文件名并取回

File upload 剑道上传-更改文件名并取回,file-upload,kendo-ui,File Upload,Kendo Ui,我在mvc项目中使用剑道上传。我的用户必须上传文件,我必须用唯一的文件名更改文件名。 我更改控制器中的文件名: public ActionResult Dosyayukle(IEnumerable文件) { 如果(文件!=null) { foreach(文件中的var文件) { var fileName=Path.GetFileName(file.fileName); var ext=Path.GetExtension(文件名); var physicalPath=Path.Combine(Se

我在mvc项目中使用剑道上传。我的用户必须上传文件,我必须用唯一的文件名更改文件名。 我更改控制器中的文件名:

public ActionResult Dosyayukle(IEnumerable文件)
{
如果(文件!=null)
{
foreach(文件中的var文件)
{
var fileName=Path.GetFileName(file.fileName);
var ext=Path.GetExtension(文件名);
var physicalPath=Path.Combine(Server.MapPath(“~/UploadedFiles”)、fileName.Replace(ext)、“”+Guid.NewGuid()+ext);
file.SaveAs(物理路径);
}
}
//返回一个空字符串表示成功
返回内容(“”);
} 
我需要获得文件名,并用唯一的名称将此文件名保存到db

在JS onComplate事件中,我找不到新文件名

this.onComplate=函数(e){
var dosyaAdi=self.dosyaAdi();
如果(dosyaAdi.match(/rar$/){
警报(“rar”);
}else if(dosyaAdi.match(/zip$/){
警报(“zip”);
}否则{
警报(dosyaAdi);
}
};
如何将新文件名传递给onComplate事件处理程序


或者我该怎么做呢

我已经为你的问题找到了解决办法


您可以使用TempData存储key-value对象,您可以在其中保存文件名和唯一密钥。您可以在save调用中获得相同的临时数据。
希望这能解决您的问题。

几天前我找到了一个解决方案。我在javascript中创建了一个唯一的guid,并在onUpload函数中设置如下参数:e.data={basketId:self.basketId(),guid:myGuid};并使用此guid名称保存文件。谢谢你的评论