无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4982|回复: 34
打印 上一主题 下一主题

[分享] 按照zts59大神要求修改支持UTF8的FTP服务器

[复制链接]
跳转到指定楼层
1#
发表于 2023-3-2 15:12:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhuwg 于 2023-3-2 15:19 编辑

zts59大神说,在WIN10测试了一下,启动服务后 FTP://ip  没办法访问,我测试了一下,是UTF8编码的问题,
原来那个代码我尝试加入UTF8编码支持,但没有成功,
于是我又找了一个支持UTF8编码的开源产品,经过测试可以用,
这个是命令行的界面,同目录有个path.txt文件配置默认目录,
如果不写,那默认目录就是C:\默认端口2121
使用FlashFXP测试这个utf8文件正常传送

ftp-u8.png (118.31 KB, 下载次数: 104)

ftp-u8.png

ftp-u8.rar

85.54 KB, 下载次数: 67, 下载积分: 无忧币 -2

ftp_utf8_test.rar

9.59 KB, 下载次数: 40, 下载积分: 无忧币 -2

2#
 楼主| 发表于 2023-3-2 15:17:53 | 只看该作者
源码也保存到论坛

fineftp_example-src.rar

10.57 KB, 下载次数: 35, 下载积分: 无忧币 -2

回复

使用道具 举报

3#
发表于 2023-3-2 16:30:37 | 只看该作者
感谢楼主无私分享
回复

使用道具 举报

4#
 楼主| 发表于 2023-3-2 17:33:25 | 只看该作者
这是静态编译版本,体积比较大,
但不依赖VC运行库

fineftp_static.rar

237.67 KB, 下载次数: 94, 下载积分: 无忧币 -2

点评

请有空再静态编译一个纯64位版本,我想在winre里使用。先行谢过!  详情 回复 发表于 2023-3-9 16:39
回复

使用道具 举报

5#
发表于 2023-3-2 19:09:25 | 只看该作者
学习
回复

使用道具 举报

6#
发表于 2023-3-2 19:34:41 | 只看该作者
谢谢分享。二十年前的必备。
回复

使用道具 举报

7#
发表于 2023-3-2 21:13:51 | 只看该作者
谢谢分享
回复

使用道具 举报

8#
发表于 2023-3-2 22:45:17 | 只看该作者
谢谢楼主分享!
回复

使用道具 举报

9#
发表于 2023-3-3 00:09:24 | 只看该作者
谢谢分享
回复

使用道具 举报

10#
发表于 2023-3-3 00:14:36 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

11#
发表于 2023-3-3 13:45:40 | 只看该作者
感谢分享
回复

使用道具 举报

12#
发表于 2023-3-6 11:28:39 | 只看该作者
本帖最后由 2010hook 于 2023-3-6 11:46 编辑

确实飞快!感谢分享!
怎么自定义读写权限?

点评

全部源码请见附件, 具体权限,是main.cpp里面, 上面定义了MyUser密码[/backcolor]MyPassword,只读权限[/backcolor]ReadOnly;[/backcolor] 定义[/backcolor]Uploader密码[/backcolor]123456,具有[/backcolor]  详情 回复 发表于 2023-3-6 23:34
回复

使用道具 举报

13#
发表于 2023-3-6 12:14:21 | 只看该作者
本帖最后由 2010hook 于 2023-3-6 17:26 编辑

可否动态编译成x64,担心以后没法用了。谢谢

点评

这是x64版本, 这个fineftp主要部分就是个lib,原作者就没做界面, 只有main.cpp里面有如下内容写的配置, 一个根目录local_root,默认匿名用户[/backcolor]Anonymous有全部权限,[/backcolor] 再给了[/backcolo  详情 回复 发表于 2023-3-6 23:14
回复

使用道具 举报

14#
 楼主| 发表于 2023-3-6 23:14:46 | 只看该作者
2010hook 发表于 2023-3-6 12:14
可否动态编译成x64,担心以后没法用了。谢谢

这是x64版本,
这个fineftp主要部分就是个lib,原作者就没做界面,
只有main.cpp里面有如下内容写的配置,
一个根目录local_root,默认匿名用户Anonymous有全部权限,
再给了Uploader用户具有读写权限,MyUser用户只读权限,
这些都是直接写在代码里面的,所以要求使用者要会一点编程,
原作者没有提供配置文件来保存这些
  1. #ifdef WIN32
  2.         std::string local_root;
  3.       local_root =  "C:\"; // The backslash at the end is necessary!
  4.   std::cout << "local_root: " << local_root << std::endl;
  5. #else // WIN32
  6.   const std::string local_root =  "/";
  7. #endif // WIN32

  8.   // Create an FTP Server on port 2121. We use 2121 instead of the default port
  9.   // 21, as your application would need root privileges to open port 21.
  10.   fineftp::FtpServer server(2121);

  11.   // Add the well known anonymous user and some normal users. The anonymous user
  12.   // can log in with username "anonyous" or "ftp" and any password. The normal
  13.   // users have to provide their username and password.
  14.   server.addUserAnonymous(local_root, fineftp::Permission::All);
  15.   server.addUser         ("MyUser",   "MyPassword", local_root, fineftp::Permission::ReadOnly);
  16.   server.addUser         ("Uploader", "123456",     local_root, fineftp::Permission::DirList | fineftp::Permission::DirCreate | fineftp::Permission::FileWrite | fineftp::Permission::FileAppend);

  17.   // Start the FTP server with 4 threads. More threads will increase the
  18.   // performance with multiple clients, but don't over-do it.
  19.   server.start(4);
复制代码


fineftp_x64.rar

113.95 KB, 下载次数: 32, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5 有劳!很给力!

查看全部评分

回复

使用道具 举报

15#
 楼主| 发表于 2023-3-6 23:34:58 | 只看该作者
2010hook 发表于 2023-3-6 11:28
确实飞快!感谢分享!
怎么自定义读写权限?

全部源码请见附件,
具体权限,是main.cpp里面,
  1.   server.addUser         ("MyUser",   "MyPassword", local_root, fineftp::Permission::ReadOnly);
  2.   server.addUser         ("Uploader", "123456",     local_root, fineftp::Permission::DirList | fineftp::Permission::DirCreate | fineftp::Permission::FileWrite | fineftp::Permission::FileAppend);
复制代码
上面定义了MyUser密码MyPassword,只读权限ReadOnly;
定义Uploader密码123456,具有fineftp::Permission::DirList | fineftp::Permission::DirCreate | fineftp::Permission::FileWrite | fineftp::Permission::FileAppend;
顾名思义,列目录,创建目录,写文件,追加文件权限,
如果想要全部权限,直接fineftp::Permission::All,
这个东西我就是打算PE上临时使用的,没打算长期使用,权限直接全开了,
大神需要有什么精细权限的我再修改一个版本

fineftp-server.part03.rar

403.92 KB, 下载次数: 27, 下载积分: 无忧币 -2

fineftp-server.part02.rar

990 KB, 下载次数: 31, 下载积分: 无忧币 -2

fineftp-server.part01.rar

990 KB, 下载次数: 33, 下载积分: 无忧币 -2

点评

见谁都称大神,你太谦虚了! 劳烦您帮忙改成如下这样,其它不变:  详情 回复 发表于 2023-3-7 15:18
回复

使用道具 举报

16#
发表于 2023-3-7 08:43:56 | 只看该作者
确实不错,如有用户权限控制就非常好了,感谢
回复

使用道具 举报

17#
发表于 2023-3-7 15:18:15 | 只看该作者
本帖最后由 2010hook 于 2023-3-7 15:24 编辑
zhuwg 发表于 2023-3-6 23:34
全部源码请见附件,
具体权限,是main.cpp里面,...

见谁都称大神,你太谦虚了!

劳烦您帮忙改成这样,删了"Uploader"这行:
  server.addUserAnonymous        (local_root, fineftp::Permission::ReadOnly);
  server.addUser                        ("User",   "123456", local_root, fineftp::Permission::All);

也是动态编译成x64,感谢!

点评

请见附件  详情 回复 发表于 2023-3-7 16:01
回复

使用道具 举报

18#
 楼主| 发表于 2023-3-7 16:01:59 | 只看该作者
2010hook 发表于 2023-3-7 15:18
见谁都称大神,你太谦虚了!

劳烦您帮忙改成这样,删了"Uploader"这行:

请见附件

2121.png (31.84 KB, 下载次数: 95)

2121.png

fineftp_2121.rar

113.92 KB, 下载次数: 20, 下载积分: 无忧币 -2

点评

刚刚在PE10试了,手机通过FileManager+,多个目录会报错“加载错误”,path.txt 末尾有空行也报错。  详情 回复 发表于 2023-3-8 18:55

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5 很好!赞一个!

查看全部评分

回复

使用道具 举报

19#
发表于 2023-3-8 18:55:23 | 只看该作者

刚刚在PE10试了,手机通过FileManager+,多个目录会报错“加载错误”,path.txt 末尾有空行也报错。

点评

path.txt 我没有判断,直接读入全部内容当路径的, 如果有多个目录或者空行会报 450 Path does not exist 如果大神需要多个目录,请考虑使用Serv-U之类的专业级服务器软件, 这个功能我暂时不知道怎么做出来  详情 回复 发表于 2023-3-9 09:24
回复

使用道具 举报

20#
 楼主| 发表于 2023-3-9 09:24:37 | 只看该作者
2010hook 发表于 2023-3-8 18:55
刚刚在PE10试了,手机通过FileManager+,多个目录会报错“加载错误”,path.txt 末尾有空行也报错。

path.txt 我没有判断,直接读入全部内容当路径的,
如果有多个目录或者空行会报 450 Path does not exist
如果大神需要多个目录,请考虑使用Serv-U之类的专业级服务器软件,
这个功能我暂时不知道怎么做出来

点评

目前这样已经很好用了,手工改下目录也简单。 专业FTP我找到了Xlight,纯C编写,改大Socket缓存那速度就跟fineFTP同级,上传速度还更快,免费功能足够家用。  详情 回复 发表于 2023-3-9 12:15
回复

使用道具 举报

21#
发表于 2023-3-9 09:32:22 | 只看该作者
看起来很牛逼呀
回复

使用道具 举报

22#
发表于 2023-3-9 12:15:40 | 只看该作者
本帖最后由 2010hook 于 2023-3-9 13:35 编辑
zhuwg 发表于 2023-3-9 09:24
path.txt 我没有判断,直接读入全部内容当路径的,...

目前这样已经很好用了,手工改下目录也简单,很适合PE使用。
专业FTP我找到了Xlight,纯C编写,改大Socket缓存那速度就跟fineFTP同级,免费功能足够家用。

点评

Xlight这个怎么设置成打开这个软件就自动启动虚拟服务  详情 回复 发表于 2023-3-9 17:04
回复

使用道具 举报

23#
发表于 2023-3-9 16:39:26 | 只看该作者
zhuwg 发表于 2023-3-2 17:33
这是静态编译版本,体积比较大,
但不依赖VC运行库

请有空再静态编译一个纯64位版本,我想在winre里使用。先行谢过!

点评

请见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=434771 二楼有x64静态编译版  详情 回复 发表于 2023-3-9 23:12
回复

使用道具 举报

24#
发表于 2023-3-9 17:04:48 | 只看该作者
2010hook 发表于 2023-3-9 12:15
目前这样已经很好用了,手工改下目录也简单,很适合PE使用。
专业FTP我找到了Xlight,纯C编写,改大Sock ...

Xlight这个怎么设置成打开这个软件就自动启动虚拟服务

点评

主界面右上角有个设置“全局选项”,“通用”第一项设置就是安装为自动系统服务。  详情 回复 发表于 2023-3-9 19:43
不能,专业服务器没有这样搞的吧。  详情 回复 发表于 2023-3-9 17:20
回复

使用道具 举报

25#
发表于 2023-3-9 19:43:29 | 只看该作者
zts59 发表于 2023-3-9 17:04
Xlight这个怎么设置成打开这个软件就自动启动虚拟服务

主界面右上角有个设置“全局选项”,“通用”第一项设置就是安装为自动系统服务。
回复

使用道具 举报

26#
发表于 2023-3-9 22:07:10 | 只看该作者
这个蛮好的,多谢楼主
回复

使用道具 举报

27#
 楼主| 发表于 2023-3-9 23:12:37 | 只看该作者
sairen139 发表于 2023-3-9 16:39
请有空再静态编译一个纯64位版本,我想在winre里使用。先行谢过!

请见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=434771
二楼有x64静态编译版
回复

使用道具 举报

28#
发表于 2023-6-11 17:18:04 | 只看该作者
谢谢楼主,和各位热心坛友!!!
回复

使用道具 举报

29#
发表于 2023-6-18 16:08:06 | 只看该作者
按照zts59大神要求修改支持UTF8的FTP服务器
回复

使用道具 举报

30#
发表于 2023-7-1 20:02:44 | 只看该作者
感谢,这个真小巧。。。怎么修改root地址呀?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-17 22:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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