1

要求是将Upload一个或多个任何类型的文件(例如txt,zip,doc,csv,xls,...)从使用网页的系统发送Window到系统。系统必须动态地将,等... 的东西从支持的格式转换。UnixJSP/JavaChar-setEOLWindowsUnix

注意:上传文件也可以是 Unix 格式。

同样,如果用户想要下载相同的文件或不同的文件(存在于 Unix 文件系统中),则必须将其转换为Windows支持的格式。

我试过,写一个 perl 脚本来转换两种方式。在上传/下载文件之后/之前,系统将调用适当的脚本来转换格式。

dos2unix.sh

perl -pi -e 's/\r\n?/\n/g' filename

unix2dos.sh

perl -i -p -e 's/\n/\r\n/' filename

我需要以有效的方式实现这个转换过程。因为,我不确定用户文件大小(允许的最大文件大小为 5MB/文件),单次提交中上传的文件数量(最多 5 个文件)。

请建议如何以更少的成本实现。

提前致谢!

4

2 回答 2

7

你绝对是在浪费时间,因为

  1. dos2unix已经有和之类的工具unix2dos
  2. 一个体面的文本编辑器不关心行尾。
  3. 您不知道文本文件和二进制文件之间的区别。
于 2013-09-14T16:33:15.677 回答
0

doc 和 xls 你可以跳过,无论如何它们都不是真正的文本文件,任何可以呈现 xls 或 doc 文件的程序都应该以相同的方式读写它。

在您列出的文件扩展名中,txt 和 csv 是唯一真正的文本扩展名。正如 Michael-O 所提到的,dos2unix - 二进制文件,而不是您上面列出的 perl shell perl 脚本 - 将是一个合理的选择,并且可能比 perl 单线快得多。另一个完全合理的选择是完全跳过转换,但这是一个商业决策,而不是技术决策。

您可以提取 zip 文件,然后通过与文本文件(即 txt 和 csv)相同的过滤过程运行它们,然后压缩然后备份。但同样,这似乎是一个非常繁重的过程。

于 2013-09-21T13:52:02.650 回答