在Web开发中,wwwroot
文件夹通常用于存放网站的静态文件,如HTML、CSS、JavaScript文件以及图片、视频等资源。当您提到“重命名文件上传名并保留旧名称”,我理解您希望在上传文件到 wwwroot
文件夹时,对文件进行重命名,但同时希望保留原始文件的名称以供后续使用。
以下是一个简单的示例,展示如何在ASP.NET Core中实现文件上传并重命名:
public async Task<IActionResult> UploadFile(IFormFile file)
{
if (file == null || file.Length == 0)
return Content("文件为空,请选择一个文件上传。");
var originalFilename = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
var fileExt = Path.GetExtension(originalFilename);
var newFilename = Guid.NewGuid().ToString() + fileExt; // 使用GUID生成新文件名
var path = Path.Combine(_hostingEnvironment.WebRootPath, "uploads", newFilename);
using (var stream = new FileStream(path, FileMode.Create))
{
await file.CopyToAsync(stream);
}
// 保存原始文件名和新文件名的映射关系,例如存入数据库
_context.FileNames.Add(new FileNameMapping { OriginalName = originalFilename, NewName = newFilename });
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
在这个示例中,我们使用了 Guid.NewGuid().ToString()
来生成一个唯一的文件名,并保留了原始文件的扩展名。同时,我们将原始文件名和新文件名的映射关系保存到了数据库中,以便将来查询和使用。
请注意,实际应用中还需要考虑更多的安全性和性能优化措施。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云