Loading...

学习和积累有关asp.net, .net core, asp.net core的知识,在编程中找寻乐趣!

当前位置:首页DotNet

C#.NETCORE文件上传到linux服务器时要注意的问题

发布时间:2025-03-25 09:42
C#.NETCORE文件上传到linux服务器时要注意的问题

c#代码:

[HttpGet]
public MyResults Get()
{
    var a = "D:\\www\\wwwroot\\upload\\a.jpg";
    var b = "/www/wwwroot/b.jpg";
    var c = Path.GetDirectoryName(a);
    var d = Path.GetDirectoryName(b);
    var e = Path.GetFileName(a);
    var f = Path.GetFileName(b);
    return MyResults.DataResult(new { c=c,d=d,e=e,f=f });
}

上面的执行结果,在windows下的结果:

{"code":0,"msg":"请求成功","success":true,"data":{"c":"D:\\www\\wwwroot\\upload","d":"\\www\\wwwroot","e":"a.jpg","f":"b.jpg"},"token":null}

而在 linux下执行结果是这样的:

{"code":0,"msg":"请求成功","success":true,"data":{"c":"","d":"/www/wwwroot","e":"D:\\\\www\\\\wwwroot\\\\upload\\\\a.jpg","f":"b.jpg"},"token":null}

从而可以知道 , 使用反斜杠 \\ 时,在linux上使用 Path.GetDirectoryName 是获取不到值的,且使用 Path.GetFileName 获取文件名时,也不是想要的文件名,而是文件路径 。

把 c#代码改为如下:

var a = "D:/www/wwwroot/upload/a.jpg";

则在windows上的结果跟原来一样,没有改变

则linux输出结果,就正常了。

{"code":0,"msg":"请求成功","success":true,"data":{"c":"D:/www/wwwroot/upload","d":"/www/wwwroot","e":"a.jpg","f":"b.jpg"},"token":null}

综上所述,最好都统一使用 / ,则不使用 反斜杠 。

DOTNET下使用正则使内容字段进行分段处理适合不分段的内容文本处理

DOTNET下使用正则使内容字段进行分段处理适合不分段的内容文本处理, 如果您的内容是一个整段,可以使用如下方法处理,使用条件:内容必须放在

提供免费的服务器维护、网站维护、宝塔面板的安装及运行。

网站编写代码分享

网站收录效果不好,自然会影响排名,网站优化首先第一步是要搞好网站收录

网络营销