目的
- 注意:普通数据与文件数据有区别,如果一起上传会时文件数据上传成功的是文件名,而不是文件。所以使用beanutils框架
基本思路
使用from表单进行文件,与数据的上传,
判断是普通数据还是文件数据,如果为普通数据使用map的方式将数据进行保存,如果为文件数据使用流的方式将文件进行保存
代码实现
- 将数据进行遍历,并判断为何种类型的数据
for (FileItem fileItem : list) {
if(fileItem.isFormField()){//判断是否是 普通的表单项
- 如果为普通数据使用map的方式进行储存,等遍历完之后可以对map中数据进行相应的操作
map.put(fileItem.getFieldName(),fileItem.getString());
- 如果为文件类型数据,将上传文件 保存到服务器的硬盘中
//拼接路径
String path = this.getServletContext().getRealPath("/")+"upload"+ File.separator;
String fileName = UUID.randomUUID().toString();
String suffix = fileItem.getName().substring(fileItem.getName().lastIndexOf('.'));
File file = new File(path+fileName+suffix);
fileItem.write(file);
//将 路径 存储到 map ,以再便存到数据库里
map.put(fileItem.getFieldName(),"/upload/"+fileName+suffix);