首页 > 技术文章 > 实现文件上传

whydbk 2020-07-24 15:16 原文

1.我们要先判断上传的是否为多段数据 只有多端数据才是上传上来的文件 以下是基本的实现类
getname 是得到文件的名字 getfilename是得到html页面的名字


注意在form标签中必须加入enctype="multipart/form-data" 如果不加 此时if中的静态方法始终返回false 就认为其是一个普通标签了

 

if(ServletFileUpload.isMultipartContent(req))// 是否为多端内容这个是一个静态方法
{
//创建fileItemFactory 工厂实现类
FileItemFactory fileItemFactor=new DiskFileItemFactory();
//创建文件接受解析类 并将工厂给到解析类
ServletFileUpload fileUpload=new ServletFileUpload(fileItemFactor);
try {
List<FileItem> list= fileUpload.parseRequest(req);//翻译过来是解析请求
for(FileItem fileItem:list)
{
if(fileItem.isFormField())
{

System.out.println("我是普通表单项");
System.out.println("我表单的name为:"+fileItem.getFieldName());
//给我们传过来的表单设置编码格式 防止出现中文乱码
System.out.println("我表单的value为:"+fileItem.getString("UTF-8"));
}
else{
//getname是文件的名字
System.out.println("我是文件"+fileItem.getName());
System.out.println("我的名字为:"+fileItem.getFieldName());
//这个文件名字得有啊 不然报错 拒绝访问
fileItem.write(new File("D:\\盘姬\\"+fileItem.getName()));
}

}

} catch (Exception e) {
System.out.println("Servlet程序 Accept_Use_Lib文件接受异常");
e.printStackTrace();
}

}
}

 

 

    //    @Override
// protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//
// /*
// 第一步:先造出文件工厂类
// 第二步:将造出来的工厂类给fileupload来进行装载
// 第三步:通过fileupload静态方法来判断请求的内容是否为段内容
// 第四步:弄出fileitem类来处理接受到数据
// */ //磁盘文件工厂
// FileItemFactory factory= new DiskFileItemFactory();
// ServletFileUpload fileUpload=new ServletFileUpload(factory);
// //它通过 form标签中的 enctype="multipart/form-data" 来确认是否是多端内容
// //所以这块别忘了 如果form标签不填 他始终返回false
// if(ServletFileUpload.isMultipartContent(req))
// {
// try {
// List<FileItem> list=fileUpload.parseRequest(req);//解析请求
// for(FileItem fileItem:list)
// {
// if(fileItem.isFormField())
// {
// System.out.println("我是普通类型的表单对象 别的你就别问了");
// }else {
// System.out.println("我是上传的文件!");
// try {
// fileItem.write(new File(
// "D:\\codeByidea\\WEB\\07_文件的上传与下载的实现\\web\\file\\" + fileItem.getName()));
// } catch (Exception e) {
// e.printStackTrace();
// }
//
// }
//
// }
//
// } catch (FileUploadException e) {
//
// e.printStackTrace();
// }
//
// }
// else {
// System.out.println("我只是一个表单");
// req.setCharacterEncoding("utf-8");
// System.out.println(req.getParameter("test is tow content"));
// System.out.println(req.getParameter("get file"));
//
// }
//
// }

 

推荐阅读