六. 上传和下载
1. 上传
a. 引入两个JAR包
- apache: commons- fileupload. jar组件
- commons- fileupload. jar依赖commons- io. jar
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
b. 代码:
前台代码jsp:
- 通过表单上传:
<input type="file" name="spicture"/>
- 表单的提交方式必须是post
- 表单中必须增加一个属性:
enctype="multipart/form-data"
后台代码servlet:
使用tomcat部署项目时上传的目录有时会被删除:
如果修改代码,重新启动项目,项目会重新部署class文件
为防止上传目录丢失:a. 虚拟路径 b. 目录改为非tomcat内路径
示例:
index.jsp👇
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>上传和下载</title>
</head>
<body>
<center>
请输入姓名、学号和要上传的文件(只能是png、jpg、gif类型)
<div style="width:540px;border:1px solid black;background-color:#ddd">
<form action="../../UploadServlet " id="form1" name="form1" method="post" enctype="multipart/form-data" >
学号:<input type="text" name="uno" id="uno" ><br>
姓名:<input type="text" name="uname" id="uname" ><br>
上传照片:<input type="file" name="spicture" id="file"/>
<input type="submit" value="提交">
</form>
</div>
</center>
</body>
<script type="text/javascript">
function demo()
{
var name = document.getElementById("name");
var pass = document.getElementById("pass");
var file = document.form1.file.value.toString().trim().length;
var errStr = "";
if (uname.value == "" || uname.value == null)
{
errStr +=