C# 文件上载后的文件权限问题
我认为这是一个文件权限问题,我有一些问题。 当我在本地(Windows PC)运行下面的代码时,我对代码没有任何问题,但当我在服务器(CentOS)上运行代码时,它在“var img=new System.Drawing.Bitmap(fullPath);”行上失败 文件上传正常,但尝试将图像读入位图时似乎失败。我没有从异常中得到日志中的错误 为了验证,我做了一个测试,每行记录och,当将上传的文件读取到位图时,它失败了。它尝试读取的文件存在,且路径正确。所以我相信这是某种许可问题。但我不明白为什么,或者如何修复它C# 文件上载后的文件权限问题,c#,asp.net-core-3.1,C#,Asp.net Core 3.1,我认为这是一个文件权限问题,我有一些问题。 当我在本地(Windows PC)运行下面的代码时,我对代码没有任何问题,但当我在服务器(CentOS)上运行代码时,它在“var img=new System.Drawing.Bitmap(fullPath);”行上失败 文件上传正常,但尝试将图像读入位图时似乎失败。我没有从异常中得到日志中的错误 为了验证,我做了一个测试,每行记录och,当将上传的文件读取到位图时,它失败了。它尝试读取的文件存在,且路径正确。所以我相信这是某种许可问题。但我不明白为
using (var stream = System.IO.File.Create(fullPath))
{
file.CopyTo(stream);
stream.Close();
}
if (fileExtension.ToLower() != ".png")
{
var img = new System.Drawing.Bitmap(fullPath);
img.Save(Path.Combine(pathToSave, fileName + ".png"), System.Drawing.Imaging.ImageFormat.Png);
img.Dispose();
System.IO.File.Delete(fullPath);
}
在谷歌上搜索了一下,看起来像是在使用系统。在Linux上绘图不是一个好主意。但是有一篇文章是他们完成的。例如。 我认为关键是您需要安装一些LIB:
sudo apt-get -f install libgdiplus
这是Ubuntu版的,试着为Centos找到同样的版本谢谢!我刚刚意识到我在项目的其他部分使用了MagickImage,因此我可以用它来转换为PNG。当然,另一种方法是使用库:)