我正在使用Struts 2.3.24.1,由于这里提到的错误,在切换到雅加达流实现之后,当我表单中的文件上载字段为空时,我发现了一个新的错误。我的表格如下(节略):
jsp prettyprint-override"><s:form enctype="multipart/form-data" method="POST" action="persistAddNote" id="noteForm">
<s:token/>
<s:file name="fileUpload" size="79"/>
<s:if test="hasActionErrors()">
<s:property value="%{#request.uploadError}" escape="false"/>
</s:if>
<s:submit cssClass="buttonFormat" value="Save"
onclick="javascript: disableButtons(); document.noteForm.submit();"/>
</s:form>
persistAddNote
操作配置如下:
<action name="persistAddNote" class="my.example.action.PersistNoteAction">
<param name="parameter">my.example.encoder.Latin1ToLatin9Encoder</param>
<interceptor-ref name="tokenSession"/>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params"/>
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<exception-mapping name="notes.error.filesize"
exception="my.example.exception.UploadFileSizeException"
result="/notes/error.jsp"/>
<result name="input">/notes/addnote.jsp</result>
<result name="added">/notes/newnoteok.jsp</result>
<result name="novalidaction">/notes/noValidActionError.jsp</result>
</action>
错误发生在JakartaStreamMultiPartRequest中。createTemporaryFile(String,String)
方法,因为未设置文件名。这是意料之中的,因为文件上载字段不是必需的。我试着调试Struts代码,但看起来好像multipart/formdata
enctype总是触发临时文件的创建。当我切换回struts中的标准
,但这又带来了我上面提到的问题。jakarta
实现时,错误消失了。属性
有人知道如何解决这个问题吗?
正如Aleksandr所提到的,这是JakartaStreamMultiPartRequest中的一个bug(参见WW-4583)。该漏洞已在2.3.28及更高版本中修复。
在新版本发布之前,您可以应用简单的JavaScript解决方案来解决此问题。如果文件输入字段在提交之前是空的,只需禁用它。
js prettyprint-override">function checkFileInput() {
var fileInput = document.getElementById("fileInputId");
if (fileInput.value.length < 1) {
fileInput.disabled = true;
}
}
首先,这不是这个问题的重复。如果是的话,对不起,我不能通过阅读来解决我的问题。 非常感谢。
文件上载返回“状态代码8-无效参数”响应。想知道是什么导致了这种情况。 我使用Chilkat sFTP在多个合作伙伴之间传输和接收文件,没有问题,但是对于一个新的合作伙伴,我看到以下错误。合作伙伴的技术团队正在询问是否正在调用被动连接,但我在Chilkat中看不到任何可以让我改变这一点的属性。 日志消息:
我有同样的问题输入流。你能分享更多关于你的修复的细节吗? 谢谢,哈莎 链接到您的问题 JavaApache HttpClient上传文件出错
我在使用jquery使用WCF服务时遇到了一个问题。我在system.serviceModel/bindings/webHttpbinding中遇到错误“Configuration binding extension”“system.serviceModel/bindings/webHttpbinding”。请验证此绑定扩展已在system.serviceModel/extensions/bind
我有一个字段,使用空白标记器和小写和asciifolding过滤器进行分析。我试图运行一个同时包含前缀和通配符的查询。我们正在用ElasticSearch取代一个使用纯Lucene的本土搜索引擎,类似的查询确实使用Lucene语法,但在ElasticSearch中不起作用。 例如,该查询将查找在“name”字段中有“Smith John”的所有文档。 如果我省略引号,我会得到结果,但这包括在同一文
问题内容: 在带有Python 2.7的Windows 7上可以正常工作: 库prov_means.DLL在我的工作目录中。它导出没有依赖关系的简单,独立的C函数provmeans()。 当我在Windows XP和Python 2.7上尝试相同的操作时,我得到了 我尝试将DLL复制到Windows \ System32,并且还输入完整路径名 具有和不具有“ .DLL”扩展名。没事。 问题答案: