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站点?