我正在使用jsp和servlets开发一个Web应用程序。我正在尝试上传文件,然后处理该文件的数据。为此,我的jsp代码是
<form action="LoadFile" method="post" enctype="multipart/form-data" accept-charset="UTF-8">
<input type="file" name="file" id="file" size="50" accept=".doc, .docx, .txt"/>
<br />
<input type="submit" value="Check Now" name="upload" id="upload"/>
</form>
名为“LoadFile.java”的Java servlet在processRequest方法中包含以下代码
request.setCharacterEncoding("UTF-8");
Part filePart = request.getPart("file");
String fileName = getFileName(filePart);
OutputStream outStream = null;
InputStream filecontent = null;
final PrintWriter writer = response.getWriter();
try {
outStream = new FileOutputStream(new File(File.separator
+ fileName));
filecontent = filePart.getInputStream();
int read = 0;
final byte[] bytes = new byte[1024];
while ((read = filecontent.read(bytes)) != -1) {
outStream.write(bytes, 0, read);
}
writer.println("New file " + fileName + " created at " + filePath);
} catch (FileNotFoundException fne) {
writer.println("You either did not specify a file to upload or are "
+ "trying to upload a file to a protected or nonexistent "
+ "location.");
writer.println("<br/> ERROR: " + fne.getMessage());
}
每当我尝试上传文件时,它都会提供FileNotFoundExceptin。 我需要做什么?
答案 0 :(得分:1)
在您的Web应用程序WEB-INF
文件夹中,创建一个名为files
的文件夹,并将FileOutputStream
的代码更改为如下所示。
outStream = new FileOutputStream(new File(request.getRealPath("/WEB-INF/")+ "files"+ File.separator
+ fileName));