我今天又没得写了啊,只得来整点技术。
首先,html实现的是表单提交、等待显示,servlet实现的是后台处理。两个互不干扰!
html的布局用bootstrap、jquery和Font Awesome实现,虽说排版还是怂了点,不过基础的目的实现了。
servlet后台本身就是java。因此servlet就是java的一个分支,完全使用java语法。这里使用servlet3.0,加个注解就不用配置web.xml。在eclipse实现。
HTML5:
Upload File//对一些DIV元素的控制
$(document).ready(function() {
$("#wait").hide();
$("#submit").click(function() {
$("#form").hide();
$("#wait").show();
});
});
选择文件:
你的文件上传后,将会显示在服务器上。请耐心等待。
SERVLET:
//改动原文https://www.cnblogs.com/to-red/p/11129451.html
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
//两个注解,一个是自动配置servlet,一个是支持文件上传
@WebServlet(name = "Upload", urlPatterns = { "/upload" })
@MultipartConfig
public class Upload extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 加一个try,因为文件名重复或没有文件会抛错误
try {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String pathname = "D:\\uploads\\"; //首先要确保你服务器有D盘,没有换C盘也可以
File path = new File(pathname);
if (!path.exists()) {
path.mkdir(); //不存在uploads 创建文件夹
}
Part part = request.getPart("file");
out.println("文件大小:" + part.getSize() + "
");
String cd = part.getHeader("Content-Disposition");
// 这里获取文件名我做了改动,因为win10 tomcat9获得的文件名是错的
String filename = cd.substring(cd.lastIndexOf("=") + 2, cd.length() - 1);
filename = filename.substring(filename.lastIndexOf("\\") + 1); //改动
out.println("上传的文件:" + filename + "
");
//上传文件
String filePath = path.getPath() + File.separator + filename;
part.write(filePath);
out.println("上传文件成功!");
System.out.println("上传文件,session-id为 : " + request.getSession().getId() + ",文件名为:" + filePath);
//servlet没有排版
} catch (Exception ex) {
System.out.println("Upload class is throws " + ex.getMessage());
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
界面有点怂......就当学习好了!