Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload &引用;前缀太短“;使用带有空文件上载字段的JakartaStreamMultiPartRequest时出错_File Upload_Struts2 - Fatal编程技术网

File upload &引用;前缀太短“;使用带有空文件上载字段的JakartaStreamMultiPartRequest时出错

File upload &引用;前缀太短“;使用带有空文件上载字段的JakartaStreamMultiPartRequest时出错,file-upload,struts2,File Upload,Struts2,我正在使用Struts 2.3.24.1,由于前面提到的错误,我切换到雅加达流实现后,当我表单中的文件上载字段为空时,我发现了一个新错误。 我的表格如下(节略): persistAddNote操作配置如下: my.example.encoder.Latin1ToLatin9Encoder 输入、返回、取消、浏览 输入、返回、取消、浏览 /notes/addnote.jsp /notes/newnoteok.jsp /notes/noValidActionError.jsp 该错误发生在J

我正在使用Struts 2.3.24.1,由于前面提到的错误,我切换到雅加达流实现后,当我表单中的文件上载字段为空时,我发现了一个新错误。 我的表格如下(节略):


persistAddNote
操作配置如下:


my.example.encoder.Latin1ToLatin9Encoder
输入、返回、取消、浏览
输入、返回、取消、浏览
/notes/addnote.jsp
/notes/newnoteok.jsp
/notes/noValidActionError.jsp
该错误发生在
JakartaStreamMultiPartRequest.createTemporaryFile(String,String)
方法中,因为没有设置文件名。这是意料之中的,因为文件上载字段不是必需的。我试着调试Struts代码,但看起来好像
multipart/formdata
enctype总是触发临时文件的创建。当我切换回
struts.properties
中的标准
jakarta
实现时,错误消失了,但这又带来了我上面提到的问题


有人知道如何解决这个问题吗?

正如Aleksandr提到的,这是JakartaStreamMultiPartRequest中的一个bug(请参阅)。该错误已在2.3.28及以上版本中修复。

在新版本发布之前,您可以应用简单的JavaScript解决方案来修复此问题。如果文件输入字段在提交前为空,请禁用该字段

函数checkFileInput(){
var fileInput=document.getElementById(“fileInputId”);
if(fileInput.value.length<1){
fileInput.disabled=true;
}
}

看起来像个bug。你可以报告。好的,我会的。谢谢至少我的配置是正确的,这是一种解脱;-)。谢谢你,亚历山大。为了正确地关闭我的问题,我将写一个答案。@AleksandrM最后一个问题:是否会有一个包含您的修复程序的新快照部署?我刚刚浏览了存储库,版本2.3.25的最新快照可以追溯到10月份。谢谢你的帮助。忽略这里的否决票,这只是对;)的报复我想了一秒钟,但我有能力使之平衡;)再次感谢你。你在这方面帮了大忙。@Sebastian:谢谢。很高兴我能帮忙。:)@阿布德尔哈克:如果你也能删除我帖子上的反对票,那就太好了。上帝,别再这样了-