我需要实现一个将文件上传到服务器的servlet,我意识到每个人都说它必须是关于上传文件而不是GET方法的POST方法。但是有没有办法上传文件,并且即使请求来自POST方法,也会在URL中显示请求的参数?如果没有,还有另一种方法吗?
目前使用post方法的servlet是http://example.com/FileUpload/UploadFile
我想要的是像http://example.com/FileUpload/UploadFile ?id = 125& fileNum = 5
感谢您的意见。
答案 0 :(得分:2)
只需发布到
http://example.com/FileUpload/UploadFile?id=125&fileNum=5
而不是
http://example.com/FileUpload/UploadFile
没有这样的限制,您无法发布到具有参数的URL。您可以像现在一样处理发布数据,此外,您还可以获取get参数。
答案 1 :(得分:1)
我认为这不是一个优雅的解决方案,但您可以使用JavaScript来改变表单元素的操作,然后再将其提交为包含查询字符串参数。
表单将类似于:
<form method="POST" id="myForm" onSubmit="submitMyForm(this)>
<input type="text" id="id">
然后您将需要JavaScript来更改表单的action元素:
function submitMyForm(theForm) {
theForm.action="http://example.com/FileUpload/UploadFile?id=" +
getElementById("id").value;
theForm.submit();
}
是否有一些原因你不能只用post发送参数并将它们拉出服务器端?
答案 2 :(得分:0)
您可以在POST中发送参数和文件。例如,在html中,您可以使用具有此值的表单,它们可以是隐藏类型。 在servlet中,您可以使用与使用GET相同的方式获取值。
最好使用POST方法,因为用户无法更改URL方向栏中的值。
答案 3 :(得分:0)
或者,如果您执行multipart / form-data帖子,则可以包含多个参数以及文件。参数作为帖子正文的一部分与文件一起发送。