form enctype =“multipart / form-data”在JSP RAD环境中返回contentType null

时间:2014-10-08 15:12:58

标签: jsp file-upload enctype

我正在按照一个例子在这个链接的JSP页面上执行FileUpload:http://www.tutorialspoint.com/jsp/jsp_file_uploading.htm它看起来非常简单,我可以调用uploadFile.jsp来处理上传,除了request.getContentType( )返回null。似乎enctype =“multipart / form-data”或encoding =“multipart / form-data”没有正确设置内容类型。这是我的jsp中的表单标签:

<h3>File Upload:</h3>
Select a file to upload:<br/>
<form name="uploadform" method="post" encoding="multipart/form-data" enctype="multipart/form-data"  >
<input type="file" name="file" size="50" /><br />
<input type="button" class="button1" value="Upload File" onClick="submitFileUpload();" />
</form>

这是uploadFile.jsp的片段,我在这里得到null: String contentType = request.getContentType();

我在RAD环境中使用JSP,这似乎在IE 10或CHrome中都不起作用。我已经在这个错误上搜索了extensivley但是找不到任何可能发生这种情况的原因。看起来它适用于大多数人。请帮忙!

1 个答案:

答案 0 :(得分:0)

我发现你偏离了他们所拥有的教程

<input type="submit" value="Upload File" />

你有

<input type="button" class="button1" value="Upload File" onClick="submitFileUpload();" />

为什么呢?如果你正在尝试做Ajax,那就是你的问题。如果你没有实际使用表单而是使用Ajax,那么在表单上设置编码类型是不会帮助你的。

您应该发布javascript函数submitFileUpload的定义。

在那一部分你可能应该按照教程来写信。但另一方面你应该偏离:你应该使用Servlet而不是JSP来处理后端的上传。另外,查看Apache Commons Fileupload's own site上的示例是个好主意,因为某些方法可能会在较新版本的库中发生变化。