要解决"Asp.Net Core 2 - 从数据库导入和导出音频文件"的问题,你可以按照以下步骤进行操作:
public class AudioFile
{
public int Id { get; set; }
public string FileName { get; set; }
public string FileType { get; set; }
public byte[] FileContent { get; set; }
}
public class AppDbContext : DbContext
{
public DbSet AudioFiles { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("YourConnectionString");
}
}
请确保将"YourConnectionString"替换为你的数据库连接字符串。
public class AudioController : Controller
{
private readonly AppDbContext _dbContext;
public AudioController(AppDbContext dbContext)
{
_dbContext = dbContext;
}
[HttpPost]
public async Task Import(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("Invalid file");
}
using (var memoryStream = new MemoryStream())
{
await file.CopyToAsync(memoryStream);
var audioFile = new AudioFile
{
FileName = file.FileName,
FileType = file.ContentType,
FileContent = memoryStream.ToArray()
};
_dbContext.AudioFiles.Add(audioFile);
await _dbContext.SaveChangesAsync();
}
return Ok();
}
[HttpGet("{id}")]
public async Task Export(int id)
{
var audioFile = await _dbContext.AudioFiles.FindAsync(id);
if (audioFile == null)
{
return NotFound();
}
return File(audioFile.FileContent, audioFile.FileType, audioFile.FileName);
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext();
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
}
}
导入文件:
curl -X POST -F "file=@/path/to/audio.mp3" http://localhost:5000/audio/import
导出文件:
curl -OJ http://localhost:5000/audio/1
请确保将"/path/to/audio.mp3"替换为你的音频文件路径,并将"1"替换为你要导出的音频文件的ID。
通过上述步骤,你应该能够成功地从数据库导入和导出音频文件。
上一篇:ASP.NET Core 2 - 从控制器操作传递参数(关联ID)到全局异常处理中间件
下一篇:ASP.Net Core 2 - 仅在IIS Express中工作的PowerShell远程管理(Kestrel无法工作)