博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web文件上传的实现
阅读量:4321 次
发布时间:2019-06-06

本文共 2733 字,大约阅读时间需要 9 分钟。

1,html页面,上传使用input type=file控件,其所在的form必须加上enctype="multipart/form-data"

2,后台借助于两个开源包

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

引入包之后,后台处理的代码如下

private void process(HttpServletRequest request,            HttpServletResponse response) {        // 进行用户更新,以及联系文件的存储        response.setCharacterEncoding("utf-8");        response.setContentType("html;charset=utf-8");        FileItemFactory factory = new DiskFileItemFactory();        ServletFileUpload upload = new ServletFileUpload(factory);        upload.setHeaderEncoding(request.getCharacterEncoding());        try {            List
list = upload.parseRequest(request); for (int i = 0; i < list.size(); i++) { FileItem item = list.get(i); if (item.isFormField()) { // 说明是普通的表单字段 // updUser(item); // request.getRequestDispatcher("/listUser").forward(request, response); } else if(!item.getName().equals("")){ // 说明是文件 saveFile(item); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void saveFile(FileItem item) { String fileName=item.getName(); //防止文件重名 String imageFileName = new Date().getTime() + new Random().nextInt(1000) +fileName.substring(fileName .lastIndexOf(".") ); //网站的物理跟路径 String rootPath=this.getServletContext().getRealPath("/"); System.out.println("UpdUser:rootPath:"+rootPath); String path=rootPath+"files\\"; File dir=new File(path); if(!dir.exists()){ dir.mkdirs(); } //将文件写入物理路径 try { item.write(new File(path,imageFileName)); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }

 

转载于:https://www.cnblogs.com/bobodeboke/p/4718454.html

你可能感兴趣的文章
elasticsearch 常用查询 + 删除索引
查看>>
sops的配置过程
查看>>
prometheus+grafana监控Linux和kubernetes的例子
查看>>
kubernetes 简单 hello world nginx svc deployment
查看>>
kubenetes 的svc从ClusterPort 改为NodePort
查看>>
kube-metric在kubernetes上的部署
查看>>
kubespray 修改配置
查看>>
部署kubernetes-prometheus和用kubespray部署kubernetes后修改kubelet的
查看>>
Hbase和Hadoop的内存参数调优 + 前端控制台
查看>>
SQuirreL连接Phoenix报java.util.concurrent.TimeoutException
查看>>
开启phoenix命名空间的自动映射
查看>>
Hbase标准配置文件
查看>>
elasticsearch 7.1 401 Unauthorized
查看>>
hbase数据导出和恢复 设置双master
查看>>
prometheus 的promsql的经典例子
查看>>
python 调试技巧
查看>>
centos7清楚journal日志
查看>>
federate - Prometheus outside k8s cluster + 总体架构图
查看>>
以py脚本形式ORM操作 及 django终端打印sql语句的设置
查看>>
NVIC_PriorityGroupConfig()的说明
查看>>