通过网址上传文件

时间:2011-02-16 17:56:39

标签: java servlets file-upload

我需要实现一个将文件上传到服务器的servlet,我意识到每个人都说它必须是关于上传文件而不是GET方法的POST方法。但是有没有办法上传文件,并且即使请求来自POST方法,也会在URL中显示请求的参数?如果没有,还有另一种方法吗?

目前使用post方法的servlet是http://example.com/FileUpload/UploadFile

我想要的是像http://example.com/FileUpload/UploadFile ?id = 125& fileNum = 5

感谢您的意见。

4 个答案:

答案 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帖子,则可以包含多个参数以及文件。参数作为帖子正文的一部分与文件一起发送。