MaterialFiles icon indicating copy to clipboard operation
MaterialFiles copied to clipboard

大文件(2.01G)pc传手机时,提时无权限

Open draftman9 opened this issue 3 years ago • 3 comments

如题。是需要设置什么吗?

draftman9 avatar Aug 07 '22 09:08 draftman9

你是通过什么传的?有截图吗?

zhanghai avatar Aug 07 '22 20:08 zhanghai

你是通过什么传的?有截图吗?

我是在文件管理器打开ftp并传文件的,系统是win10,手机是安卓。

我又试了下,其他大于2G的文件可以传。但是只有该文件不能,错误提示如下图。 image

draftman9 avatar Aug 08 '22 02:08 draftman9

听起来应该是文件名编码问题,和大小无关。但我也不知道具体是什么编码问题,我用的库(Apache MINA FtpServer)也并不支持指定编码。

zhanghai avatar Aug 09 '22 08:08 zhanghai

试试把名称变成英文无空格,放过去之后再改名?

或许可以考虑把文件和名称分开传送,先随机改一个名字,在内存里面保留原文件名称。扔过去之后改回来

SodaWithoutSparkles avatar Aug 27 '22 16:08 SodaWithoutSparkles

试试把名称变成英文无空格,放过去之后再改名?

或许可以考虑把文件和名称分开传送,先随机改一个名字,在内存里面保留原文件名称。扔过去之后改回来

竟然可以。👍

draftman9 avatar Aug 28 '22 05:08 draftman9

我发现MaterialFiles不能传的文件,用miui自带的ftp功能也会提示同样的信息。我猜可能是ftp本身的问题。(今天想起来了,post一下)

draftman9 avatar Jan 14 '23 03:01 draftman9

SD 卡提供的 FAT 文件系统不支持大于 4 GB 的文件,2 GB 就不清楚了

zhanghai avatar Jan 14 '23 04:01 zhanghai

大概是因为空格令软件理解错误了,打个比方:

put source

会把本地的source复制到伺服器的working directory,但是有空格的话:

put sourc e

会尝试把本地的sourc复制到伺服器的e,但是本地的sourc文件不存在,或者是你没有写入伺服器的e的权限(因为根本没这个东西给你写)。正确做法是

put "sourc e"

也有可能是FTP根本没想过要有空格,所以这就是为什么电脑会避免空格出现在档案名里面(windows除外)。尽量用_代替空格,避免非ASCII,可以有效避免这个问题

SodaWithoutSparkles avatar Jan 14 '23 04:01 SodaWithoutSparkles

大概是因为空格令软件理解错误了,打个比方:

我做了下测试,确实是跟文件名称有关的,但是跟空格的关系不是那么简单。

  1. 以空格/减号为分隔符,将名称中的字符串划分单元。当名称里有汉字时,其中一个单元的汉字是奇数个。如:该下滴.png该下滴-.png该下滴-哈哈.png该下滴 哈哈.png。因为名称中的“该下滴”这个单元中的汉字是奇数个,所以报错了。想要解决这个问题,可以删去一个汉字使各单元的汉字数量为偶数个:该下 哈哈.png。“该下”和“哈哈”这两个单元中的汉字都是偶数个,所以没有报错。或者加一个_该下滴_ 哈哈.png。ftp可能将_认作和汉字一类的事物了。

  2. 当单元以汉字“一”开头时,若某个单元包含的汉字个数是偶数个,将会报错。正好与第一条相反。也可以这么理解,ftp将汉字“一”作为划分单元的分隔符了。如该下一哈 去吧.png会报错。该下一哈哈 去吧.png不报错。

这么有规律的报错,我猜或许跟汉字编码有关吧。但是“一”编码(19968)之后一位是“丁”(19969),但是“丁”却没有“一”的效果。唉!(我还试了“一”之后20位的的“且”和21位的“丕”,均无“一”的效果。)

image

draftman9 avatar Jan 16 '23 05:01 draftman9

@draftman9 之类的会不会报错?英文数字会不会报错?

foo-bar.png
foo-.png
foo bar.png
foo- bar.png
foo -bar.png
foo - bar.png
fooo-bar.png
fooo-.png
fooo bar.png
fooo- bar.png
fooo -bar.png
fooo - bar.png

SodaWithoutSparkles avatar Jan 16 '23 07:01 SodaWithoutSparkles

@draftman9 之类的会不会报错?英文数字会不会报错?

其他汉字不会,只有汉字“一”有这个特效。英文数字、英文大小写字母、左中括号和英文感叹号也有这个特效。

foo-bar.png
foo-.png
foo bar.png
foo- bar.png
foo -bar.png
foo - bar.png
fooo-bar.png
fooo-.png
fooo bar.png
fooo- bar.png
fooo -bar.png
fooo - bar.png

上面的名称没有任何问题,可以正常传输。(毕竟ftp是老外开发的技术)

顺便问一下:咱们这个软件可以加一个登录ftp的功能吗?手机上浏览器不能访问ftp。目前我是用es file explorer满足了这个需求。

draftman9 avatar Jan 17 '23 11:01 draftman9

怀疑是 Windows Explorer 的 FTP 客户端对 UTF-8 支持有些问题。

质感文件在添加存储那里已经支持了 FTP。

zhanghai avatar Jan 17 '23 12:01 zhanghai

我有空在linux系统上试试

SodaWithoutSparkles avatar Jan 17 '23 12:01 SodaWithoutSparkles