asp.net - 无法使用 Filestream 类写入文件(返回 400 - 错误请求)
问题描述
当我尝试使用这个小代码将图像文件写入服务器时:
[HttpPost]
public IActionResult Post([FromBody] ImgViewModel imagem)
{
try
{
if (imagem.base64.Contains(","))
{
imagem.base64 = imagem.base64
.Substring(imagem.base64
.IndexOf(",") + 1);
}
imagem.FileAsByteArray = Convert.FromBase64String(imagem.base64);
var folderName = Path.Combine("Resources", "Images");
var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
var ext = Path.GetExtension(imagem.filename);
var fileName = Guid.NewGuid().ToString() + ext;
var dbPath = Path.Combine(folderName, fileName);
using (var fs = new FileStream(dbPath, FileMode.CreateNew))
{
fs.Write(imagem.FileAsByteArray, 0,
imagem.FileAsByteArray.Length);
fs.Close();
}
ImageViewModel img = new ImageViewModel()
{
ExternalId = new Guid(imagem.id),
Type = (ImageType)1,
Url = dbPath
};
var imgx = Mapper.Map<ImageViewModel, Domain.Entities.Image>(img);
_service.Add(imgx);
_service.Commit();
return new OkObjectResult(JsonConvert.SerializeObject(imagem));
}
catch (Exception)
{
throw;
}
}
我收到 400 - 错误请求错误。我刚刚评论了这部分代码:
using (var fs = new FileStream(dbPath, FileMode.CreateNew))
{
fs.Write(imagem.FileAsByteArray, 0,
imagem.FileAsByteArray.Length);
fs.Close();
}
并再次发布它,没有写入 Filestream 文件,其余代码工作正常。因此,错误出现在这部分代码中。
另外,我已经把这段代码放在我的课堂上,试图获得服务器的权限来编写这些图像文件
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
另外,在服务器中,我认为我已经正确设置了写入文件所需的权限
有人知道我错过了什么吗?
提前致谢。
解决方案
推荐阅读
- java - “E/android.hardware.audio@6.0-impl.ranchu: WriteThread::doWriteImpl:226: pcm_write failed with Operation not allowed”在 Android Studio
- python - 从 Excel 文件中查找 Python 中的中位数
- cassandra - Cassandra:删除整个分区会创建墓碑吗?
- sql - 如何防止ms sql server中现有表中给定外键的重复条目。?
- firebase - [] 未在 Map 中定义
- python - python - 如何根据Python中的条件合并两行熊猫数据框?
- bash - 用新的一组行替换多行的 Bash 脚本
- textures - 如何在three.js中沿曲线实现一系列精灵
- html - 当没有输出可用时,如何在 SHINY 中控制 HTML 背景不显示
- java - 有没有可能 JMenuBar 可以点击的方式?