![]() |
1
12
经过大量的研究,我解决了我的问题。结果表明,没有为您可以使用的最大字节数设置默认限制。 通用多部分文件解析程序 当然,通过设置以下属性,您可以在bean中为这个数量指定您想要的任何内容。
还有一个财产 最大化 这允许您指定将文件写入磁盘之前允许的最大大小。尽管这与最大上载大小的工作方式相同,但如果不指定数量,则默认为1024字节。如果我试图上传一个大文件,这就解释了它的破坏。 为了允许上载超过1024字节的文件,您需要将maximemorysize值增加到您需要的值,如下所示… 这就是解决我问题的方法。当我查看commonfileupload文档时,我了解到这个属性默认为1024。 您可以在以下位置查看此文档: CommonsFileUpload Documentation 我希望这对任何人都有帮助,因为没有很好的文档说明如何使用commonmultipartfile。 |
![]() |
2
3
我注意到这个错误只在文件超过1024字节时发生。 你试着读两遍文件 . 正如citadelcsalum所提到的,设置maximemorysize=maxuploadsize可以解决这个问题,但是应该记住内存使用。如果要考虑内存问题,另一个选项是在第一次读取时将多部分文件数据写入临时文件,然后使用该文件进行后续读取。如果你不读两遍,就不需要增加最大的内存大小。 |
![]() |
3
2
您在问题中引用的异常状态为:“文件已移动-无法再次读取”。这是因为我们试图从多部分文件中多次读取inputstream。 我曾经也遇到过这个问题,在我的例子中,首先我验证了文件的内容,然后我尝试在Spring多部分中使用“transferto”方法保存它。当我尝试使用“transferto”方法时,会出现这个异常。这里我要两次输入流。 当文件太小时,我不会面临这个问题。在“transferto”方法中,存在对“isavailable”方法的内部调用。请遵循以下代码段:
观察:
所以我的解决方案是首先,我必须使用“transferto”方法将它保存在服务器中,然后检索本地文件以进行验证或任何其他第二次需要的操作。 我认为在“multipartresolver”bean中增加“maxuploadsize”是不好的,因为如果文件太大,它会消耗更多的内存。 |