3

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

public ActionResult Dosyayukle(IEnumerable<HttpPostedFileBase> files)
{
    if (files != null)
    {
        foreach (var file in files)
        {
            var fileName = Path.GetFileName(file.FileName);
            var ext = Path.GetExtension(fileName);

            var physicalPath = Path.Combine(Server.MapPath("~/UploadedFiles"), fileName.Replace(ext, "") + Guid.NewGuid() + ext);
            file.SaveAs(physicalPath);
        }
    }

    // Return an empty string to signify success
    return Content("");
} 

我需要获取文件名并将此文件名保存到具有唯一名称的 db 中。

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

this.onComplate = function (e) {

    var dosyaAdi = self.dosyaAdi();
    if (dosyaAdi.match(/rar$/)) {
        alert('rar');
    } else if (dosyaAdi.match(/zip$/)) {
        alert('zip');
    } else {
        alert(dosyaAdi);
    }
};

如何将新文件名传递给 onComplate 事件处理程序?

或者我该如何以另一种方式做到这一点?

4

2 回答 2

1

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

于 2014-03-06T13:48:29.267 回答
-1

我已经为您的问题找到了解决方案。

http://www.telerik.com/support/kb/aspnet-ajax/editor/giving-the-uploaded-files-unique-names.aspx

于 2013-05-20T05:55:36.003 回答