服务器端获取数据(二)
程序员文章站
2022-05-01 18:33:55
...
这篇博客讲的是服务器端获取文件数据
我们要在Servlet中重写doPost方法(不需要doGet方法了):
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(ServletFileUpload.isMultipartContent(request)){//1、判断当前form表单的编码方式是不是为enctype="multipart/form-data"
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
servletFileUpload.setFileSizeMax(1024*1024*6*10);
List<FileItem> fileItemList = null;
try {
fileItemList = servletFileUpload.parseRequest(request);//2、将form表单中每个携带数据的标签转换成每个FileItem对象并存到集合中
} catch (FileUploadException e) {
e.printStackTrace();
request.setAttribute("message", "文件太大,上传失败");
request.getRequestDispatcher("result.jsp").forward(request, response);
return;
}
for(FileItem fileItem : fileItemList){//3、获取form表单所携带的数据
if(fileItem.isFormField()){//为true表示为非文件类型的标签
String key = fileItem.getFieldName();//summary
String value = fileItem.getString();//summary对相的数据
System.out.println(key+":"+value);//这里获取的是非文件类型
}else{//文件类型
try {
String oldFileName = fileItem.getName();
String fileNameSuffix=oldFileName.substring(oldFileName.lastIndexOf("."));
System.out.println(fileNameSuffix);
String fileNamePrefix = UUID.randomUUID().toString();
//fileItem.write(new File("D:\\"+fileNamePrefix+fileNameSuffix));//未发布路径
String path = "D://"+fileNamePrefix+fileNameSuffix;
fileItem.write(new File(path+fileNamePrefix+fileNameSuffix));//发布路径
System.out.println(path);
} catch (Exception e) {
e.printStackTrace();
}
}
}
request.setAttribute("message", "文件上传成功");
request.getRequestDispatcher("result.jsp").forward(request, response);
}else{
request.setAttribute("message", "当前form表单enctype属性的属性值非multipart/form-data");
request.getRequestDispatcher("result.jsp").forward(request, response);
}
}
我们需要在form中添加一个上传文件的标签
这时我们需要再修改一下form的标签属性
这时我们需要再创建一个jsp文件
在body中写如上一行代码,这样就OK了。
上一篇: 隐形的监控——无线键盘侦听
下一篇: 数据库-数据库连接池原理
推荐阅读
-
php获取数据更新进度的有关问题
-
通过百度地图API获取坐标并将数据存储在数据库内。
-
PHP 文件编程(一)-获取文件信息的二种方式
-
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
-
php 通过二进制数来存取开关数据
-
编程案例——layui的table表格并获取选中的数据、layui监控select下拉框并将隐藏的div显示
-
基于PHP采集数据入库程序(二),php采集数据入库_PHP教程
-
怎么把CURL获取到的图片以二进制的方式post到某地址
-
在一个php中,我定义了两个表单,当第一个表单提交后,生成了第二个表单,提交第二个表单后,就取不到第一个表单的数据了,该怎么办?
-
python爬虫分布式获取数据的实例方法