Java 使用Windows和Unix在上载和下载过程中进行动态转换的有效方法

Java 使用Windows和Unix在上载和下载过程中进行动态转换的有效方法,java,windows,jsp,unix,file-upload,Java,Windows,Jsp,Unix,File Upload,要求使用JSP/Java网页从窗口上传一个或多个任何类型的文件(如txt、zip、doc、csv、xls,…)到Unix系统。系统必须动态转换字符集,下线等。。。从Windows到Unix支持的格式 注意:上载文件也可以是Unix格式 同样,如果用户希望下载相同的文件或不同的文件(存在于Unix文件系统中),则必须将其转换为Windows支持的格式 我尝试了,编写了一个perl脚本来进行双向转换。 在上传/下载文件之后/之前,系统将调用适当的脚本来转换格式 dos2unix.sh perl -p

要求使用
JSP/Java
网页
窗口
上传
一个或多个任何类型的文件(如
txt、zip、doc、csv、xls
,…)到
Unix
系统。系统必须动态转换
字符集
下线
等。。。从
Windows
Unix
支持的格式

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

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

我尝试了,编写了一个perl脚本来进行双向转换。 在上传/下载文件之后/之前,系统将调用适当的脚本来转换格式

dos2unix.sh

perl -pi -e 's/\r\n?/\n/g' filename
perl -i -p -e 's/\n/\r\n/' filename
unix2dos.sh

perl -pi -e 's/\r\n?/\n/g' filename
perl -i -p -e 's/\n/\r\n/' filename
我需要以有效的方式实现这个转换过程。因为,我不确定用户文件大小(允许的最大文件大小为5MB/文件),一次提交上载的文件数(最多5个文件)

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


提前谢谢

你完全是在浪费时间,因为

  • 已经有了像
    dos2unix
    unix2dos
    这样的工具
  • 一个好的文本编辑器并不关心行的结尾
  • 您不知道文本文件和二进制文件之间的区别

  • 你完全是在浪费时间,因为

  • 已经有了像
    dos2unix
    unix2dos
    这样的工具
  • 一个好的文本编辑器并不关心行的结尾
  • 您不知道文本文件和二进制文件之间的区别

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

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


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

    doc和xls您可以跳过,这些都不是真正的文本文件,任何能够呈现xls或doc文件的程序都应该以同样的方式读写它

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


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

    我不能要求我的客户使用体面的文本编辑器。但是我可以找到文本文件还是二进制文件。您无法检测到客户端正在运行什么,因为
    用户代理
    很容易被欺骗。您打算如何检测这是二进制文件还是文本文件?不!我不是那个意思。但我们要求将
    文本
    文件限制为特定格式(例如:
    *.txt
    )或其他二进制文件。@Mohamed Saligh:你真的希望用户上传5MB纯文本文件吗?我感觉这个网站是在内联网上。您可能想考虑使用FTP。我不能要求我的客户端使用正确的文本编辑器。但是我可以找到文本文件还是二进制文件。您无法检测到客户端正在运行什么,因为
    用户代理
    很容易被欺骗。您打算如何检测这是二进制文件还是文本文件?不!我不是那个意思。但我们要求将
    文本
    文件限制为特定格式(例如:
    *.txt
    )或其他二进制文件。@Mohamed Saligh:你真的希望用户上传5MB纯文本文件吗?我感觉这个网站是在内联网上。你可能想考虑使用FTP。你在写什么?源代码版本控制系统还是FTP站点?你在写什么?源代码版本控制系统还是FTP站点?