以下是使用JSP编写文件上传的完整攻略。
1. HTML表单
首先,我们需要在HTML文件中创建一个表单控件,让用户选择需要上传的文件并提交表单。代码如下:
<form action="upload.jsp" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" />
<input type="submit" value="Upload File" />
</form>
需要注意的是,上面的enctype
属性必须设置为multipart/form-data
,这样浏览器才能正确地将文件数据传递到服务器端。action
属性值指定文件上传的后台脚本文件名,这里我们将创建一个upload.jsp
文件来处理文件上传。
2. JSP文件上传处理
接下来,我们需要创建一个upload.jsp
文件来处理文件上传操作。代码如下:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.io.*, java.util.*, javax.servlet.*, javax.servlet.http.*"%>
<%
// 获取文件上传的请求
HttpServletRequest request = (HttpServletRequest) request;
HttpServletResponse response = (HttpServletResponse) response;
response.setContentType("text/html;charset=UTF-8");
// 获取上传的文件
Part filePart = request.getPart("fileToUpload");
String fileName = getFileName(filePart);
// 设置保存文件的路径
String savePath = "upload_files/" + fileName;
File fileSaveDir = new File(savePath);
// 检查保存文件的目录是否存在,如果不存在则创建该目录
if (!fileSaveDir.exists())
{
fileSaveDir.mkdir();
}
// 保存文件
filePart.write(savePath + File.separator + fileName);
// 返回上传成功信息
out.println("<h1>文件上传成功</h1>");
out.println("<p>文件名: " + fileName + "</p>");
%>
<%!
// 获取文件名
private String getFileName(final Part part)
{
final String partHeader = part.getHeader("content-disposition");
for (String content : part.getHeader("content-disposition").split(";"))
{
if (content.trim().startsWith("filename"))
{
return content.substring(content.indexOf('=') + 1).trim()
.replace("\"", "");
}
}
return null;
}
%>
上面的代码通过调用request.getPart("fileToUpload")
方法获取上传的文件数据,然后使用getFileName
方法获取上传文件的文件名,并将文件保存到指定目录中。同时,JSP文件也会返回上传成功的信息。
3. 示例说明
以下是两个示例,分别演示了上传一个文本文件和一个图片文件的完整过程。
示例1:上传文本文件
-
首先,我们打开一个文本编辑器(如Notepad++),在其中输入一些文本并保存为一个文本文件,例如
test.txt
。 -
接下来,我们可以在HTML表单中选择要上传的文件,如下所示:
<form action="upload.jsp" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" />
<input type="submit" value="Upload File" />
</form>
-
点击“上传文件”按钮提交表单。
-
上传完成后,浏览器将显示上传成功的信息,并且服务器中将生成一个
upload_files
目录,并在其中保存了test.txt
文件。
示例2:上传图片文件
-
首先,我们准备一张图片文件,例如
test.jpg
。 -
接下来,我们可以在HTML表单中选择要上传的文件,如下所示:
<form action="upload.jsp" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" />
<input type="submit" value="Upload File" />
</form>
-
点击“上传文件”按钮提交表单。
-
上传完成后,浏览器将显示上传成功的信息,并且服务器中将生成一个
upload_files
目录,并在其中保存了test.jpg
文件。
以上就是使用JSP编写文件上传操作的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用JSP编写文件上传 - Python技术站