吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 898|回复: 3
收起左侧

[求助] C# ftp在linux报错

[复制链接]
遗憾迟香 发表于 2021-12-29 21:51
使用以下代码实现ftp上传(敏感信息打码)
[C#] 纯文本查看 复制代码
/// <summary>
        /// 上传ftp服务
        /// </summary>
        /// <param name="path">文件地址</param>
        /// <returns></returns>
        public static string Upload(string path)
        {
            var client = new WebClient
            {
                Credentials = new NetworkCredential("***", "***"),//用户名和密码
                BaseAddress = "ftp://host.*****.com"
            };
            string ftpPath = client.BaseAddress + "/wwwroot/" + Path.GetFileName(path); //上传fptp路径
            string returnPath = "";
            try
            {
                client.UploadFile(ftpPath, path);
                returnPath = ftpPath;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return returnPath;
        }


在windows上运行无任何问题
但在linux+mono,且文件名含有中文时报错
System.Net.WebException: Server returned an error: 550 The filename, directory name, or volume label syntax is incorrect.
  at System.Net.FtpWebRequest.OpenDataConnection () [0x00000] in <filename unknown>:0
  at System.Net.FtpWebRequest.UploadData () [0x00000] in <filename unknown>:0
  at System.Net.FtpWebRequest.ProcessMethod () [0x00000] in <filename unknown>:0
  at System.Net.FtpWebRequest.ProcessRequest () [0x00000] in <filename unknown>:0

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

GitHubList 发表于 2021-12-29 22:16
試試用 FtpWebRequest

https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=net-6.0
老伙计 发表于 2021-12-30 11:10
本帖最后由 老伙计 于 2021-12-30 11:12 编辑

          那是因为 Linux 系统的文本采用的是 "UTF-8" 编码,与 Windows 所采用的 "GBK" 编码不同,在 Linux 下,你需要将字符串转换成 “GBK” 编码,然后,再向服务器发送,接收到服务器端信息后,同样需要先将字符串转成 "UTF-8" 编码后再显示。这样,就可以避免出错了。
Taoyi 发表于 2022-1-5 17:46
一个可能是编码原因,一个是Linux上的文件路径与Windows上是不一样的,分隔符也要注意,建议多打印点日志出来看下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表