如何在java中识别文件是否损坏

如何在java中识别文件是否损坏,java,file,Java,File,我需要上传文件。 在这种情况下,我不想上传损坏的文件到服务器。 有人能告诉我如何在java中识别损坏的文件吗?您可以获得文件的MD5或其他校验和,并在传输后比较在客户端和服务器上创建的值,尽管这只会告诉您文件是否在传输过程中损坏,而不是原始文件是否对预期目标有效/正确使用/键入 文件只是带有一些文件系统描述符的字节容器。应用程序读取和使用它们的方式特定于每种文件格式。如果您想在上传之前验证文件内容是否确实有效,以供某些应用程序或其他应用程序使用,则需要实现(或查找)代码,根据该类型的要求以不同的

我需要上传文件。 在这种情况下,我不想上传损坏的文件到服务器。
有人能告诉我如何在java中识别损坏的文件吗?

您可以获得文件的MD5或其他校验和,并在传输后比较在客户端和服务器上创建的值,尽管这只会告诉您文件是否在传输过程中损坏,而不是原始文件是否对预期目标有效/正确使用/键入


文件只是带有一些文件系统描述符的字节容器。应用程序读取和使用它们的方式特定于每种文件格式。如果您想在上传之前验证文件内容是否确实有效,以供某些应用程序或其他应用程序使用,则需要实现(或查找)代码,根据该类型的要求以不同的方式评估您想要支持的每个文件,或者可能尝试在某些沙盒应用程序实例中预先读取/加载/使用该文件(沙盒作为无效文件可能会破坏某些东西,如果真的无效或潜在恶意).

您可以获取文件的MD5或其他校验和,并在传输后比较在客户端和服务器上创建的值,尽管这只会告诉您文件在传输过程中是否损坏,而不是原始文件对于预期用途/类型是否真的有效/正确


文件只是带有一些文件系统描述符的字节容器。应用程序读取和使用它们的方式特定于每种文件格式。如果您想在上传之前验证文件内容是否确实有效,以供某些应用程序或其他应用程序使用,则需要实现(或查找)代码,根据该类型的要求以不同的方式评估您想要支持的每个文件,或者事先尝试在某个沙盒应用程序实例中读取/加载/使用该文件(沙盒作为无效文件可能会破坏某些东西,如果真的无效或潜在恶意)。

回答您自己的问题,不要先使用“java”。如何识别没有Java的文件是否损坏?实际情况是,我们提供了一个允许用户上载文档的web应用程序,现在我想限制用户上载损坏的文件,这意味着如果用户选择要上载的损坏文件,我必须给他一条消息,说明您选择了损坏的文件。因此,我如何使用javax识别损坏的文件通常没有“损坏的文件”这样的东西。可能有“两个文件不同”或“文件不是预期格式”,后者并不总是很容易确定,尤其是对于多媒体文件。在这种情况下,“损坏”的定义是什么?回答您自己的问题时,请先不要使用“java”。如何识别没有Java的文件是否损坏?实际情况是,我们提供了一个允许用户上载文档的web应用程序,现在我想限制用户上载损坏的文件,这意味着如果用户选择要上载的损坏文件,我必须给他一条消息,说明您选择了损坏的文件。因此,我如何使用javax识别损坏的文件通常没有“损坏的文件”这样的东西。可能有“两个文件不同”或“文件不是预期格式”,后者并不总是容易确定,尤其是对于多媒体文件。在这种情况下,“损坏”的定义是什么?在传输之前,我想知道用户是否试图上传损坏的文件,这是一个完全不同的游戏。您需要检查适当且正确的文件头、内容等。具体内容完全取决于您所谈论的确切文件类型。对于每种类型,这将是一种不同的解决方案。一种可行的方法是尝试先在后台加载和读取文件。如果存在任何异常,则文件“可能”已损坏。但同样,您必须以不同的方式处理每种类型。没有一个包罗万象的解决方案。你想测试什么类型?因为我已经给用户提供了上传功能,他们可以上传任何类型的文件,这是我们不能限制的。如果我必须为现实世界中可用的每种文件类型编写测试,那将是非常困难的。你也许可以为上传的常见文件类型编写一些测试,但正如你所说;测试每种文件类型是不现实的。您必须接受这些限制,或者重新设计,并将用户限制为您编写测试的文件。在传输之前,我想知道用户是否试图上载损坏的文件。这完全是另一回事。您需要检查适当且正确的文件头、内容等。具体内容完全取决于您所谈论的确切文件类型。对于每种类型,这将是一种不同的解决方案。一种可行的方法是尝试先在后台加载和读取文件。如果存在任何异常,则文件“可能”已损坏。但同样,您必须以不同的方式处理每种类型。没有一个包罗万象的解决方案。你想测试什么类型?因为我已经给用户提供了上传功能,他们可以上传任何类型的文件,这是我们不能限制的。如果我必须为现实世界中可用的每种文件类型编写测试,那将是非常困难的。你也许可以为上传的常见文件类型编写一些测试,但正如你所说;测试每种文件类型是不现实的。您必须接受这些限制或重新设计,并将用户限制为您编写测试的文件。