我正在尝试在我的servlet中编写java代码,通过FTP上传一个简单的html表单中的文件,如下所示:
<form name="fileUpload" method="post" action="StuffService" enctype="multipart/form-data">
<input type="file" name="nomeFile" />
<input type="submit" value="GO"/>
</form>
此表单位于JSP中,并通过doPost()方法与Servlet 3.0 StuffService(使用@MultipartConfig)绑定。
使用库 common-io-2.4 和 common-net-3.2 我创建了一个FTPClient对象来上传服务器上的文件:
FTPClient client = new FTPClient();
...
client.storeFile(...);
storeFile方法需要文件名和InputStream。
如果文件来自HTML表单,我如何才能正确获取InputStream?
我试过了:
Part filePart = request.getPart("nomeFile");
String fileName = getFilename(filePart);
File f = new File(fileName);
FileInputStream input = new FileInputStream(f);
client.storeFile(fileName, input);
但没有,我得到 java.io.FileNotFoundException 。也许我需要文件的完整路径,但我已经读过,从html表单中找不到安全html的东西。
我该怎么做?
谢谢你,对不起我的英文不好! 再见
答案 0 :(得分:-1)
在servlet中覆盖doPost(),你可以从httpServletRequest获取输入流,如下所示。 但请记住在web.xml中配置servlet或使用@webservlet注释
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
InputStream in = req.getInputStream();
...
}