要将文本文件上传到具有已登录用户外键的现有数据库,你可以按照以下步骤进行操作:
public class User
{
public int Id { get; set; }
public string Username { get; set; }
// 其他用户属性...
public ICollection Files { get; set; }
}
public class File
{
public int Id { get; set; }
public string FileName { get; set; }
public byte[] Content { get; set; }
// 其他文件属性...
public int UserId { get; set; }
public User User { get; set; }
}
// 上传文件视图
// 上传文件控制器动作
[HttpPost]
public async Task Upload(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("No file selected");
}
// 获取已登录用户的外键
int userId = // 获取已登录用户的外键代码
using (var memoryStream = new MemoryStream())
{
await file.CopyToAsync(memoryStream);
byte[] content = memoryStream.ToArray();
// 将文件保存到数据库
var newFile = new File
{
FileName = file.FileName,
Content = content,
UserId = userId
};
// 使用Entity Framework Core将文件保存到数据库
_context.Files.Add(newFile);
await _context.SaveChangesAsync();
}
return RedirectToAction("Index", "Home");
}
private readonly UserManager _userManager;
public MyController(UserManager userManager)
{
_userManager = userManager;
}
public async Task GetLoggedInUserId()
{
var user = await _userManager.GetUserAsync(User);
return user.Id;
}
请注意,上述示例中的代码只是一个简单的示例,你可能需要根据自己的需求进行适当的修改和扩展。