博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Web 文件上传Demo <1>
阅读量:6701 次
发布时间:2019-06-25

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

在我们的web开发中,很多的时候都需要把本机的一些文件上传到web服务器上面去

如:一个BBS系统,当用户使用这是系统的时候,能把本机的一些图片,文档上传到服务器

上面去。然后其他用户可以去下载这些文件,那么这样的话,我们可以自己编程实现文件的上传

但是更好的方式是使用一些已有的组件帮助我们实现这种上传功能。

--------------------------------------------------------------------------------------------------

  常用的上传组件:  

    Apache 的 Commons FileUpload

    JavaZoom的UploadBean

    jspSmartUpload

--------------------------------------------------------------------------------------------------

FileUpload下载地址:

  

  下载:commons-fileupload-1.2.2-bin.zip    得到:commons-fileupload-1.2.2.jar

  

  下载:commons-io-1.4-bin.zip       得到:commons-io-1.4.jar

--------------------------------------------------------------------------------------------------

upload.jsp

代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>using commons Upload to upload file 

请您选择需要上传的文件

上传人:
上传文件:

--------------------------------------------------------------------------------------------------

FileUploadServlet.java

代码:

/** *  */package com.b510.example;import java.io.File;import java.io.IOException;import java.util.*;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;/** *  * @author XHW *  * @date 2011-7-26 *  */public class FileUploadServlet extends HttpServlet { private static final long serialVersionUID = -7744625344830285257L; private ServletContext sc; private String savePath; public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  doPost(request, response); } public void init(ServletConfig config) {// 在web.xml中设置的一个初始化参数  savePath = config.getInitParameter("savePath");  sc = config.getServletContext(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  request.setCharacterEncoding("UTF-8");  DiskFileItemFactory factory = new DiskFileItemFactory();  ServletFileUpload upload = new ServletFileUpload(factory);  try {   List items = upload.parseRequest(request);   Iterator itr = items.iterator();   while (itr.hasNext()) {    FileItem item = (FileItem) itr.next();    if (item.isFormField()) {     System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8"));    } else {     if (item.getName() != null && !item.getName().equals("")) {      System.out.println("上传文件的大小:" + item.getSize());      System.out.println("上传文件的类型:" + item.getContentType());      // item.getName()返回上传文件在客户端的完整路径名称      System.out.println("上传文件的名称:" + item.getName());      File tempFile = new File(item.getName());  //上传文件的保存路径 File file = new File(sc.getRealPath("/") + savePath, tempFile.getName());      item.write(file);      request.setAttribute("upload.message", "上传文件成功!");     }else{      request.setAttribute("upload.message", "没有选择上传文件!");     }    }   }  }catch(FileUploadException e){   e.printStackTrace();  } catch (Exception e) {   e.printStackTrace();   request.setAttribute("upload.message", "上传文件失败!");  }  request.getRequestDispatcher("/uploadResult.jsp").forward(request, response); }}

--------------------------------------------------------------------------------------------------

uploadResult.jsp

代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>      uploadResult 
${requestScope['upload.message'] } 上传文件

 

web.xml

代码:

This is the description of my J2EE component
This is the display name of my J2EE component
FileUploadServlet
com.b510.example.FileUploadServlet
  <!--设置初始化参数-->
savePath
uploads
FileUploadServlet
/servlet/fileServlet
index.jsp
uploadFile.jsp

 

 <其他链接: >

 

 

 

 

 

 

 

 

转载地址:http://rcgoo.baihongyu.com/

你可能感兴趣的文章
VRRP虚拟冗余路由协议配置实验:
查看>>
Hanlp在ubuntu中的使用方法介绍
查看>>
阿里分布式事务框架GTS开源啦!
查看>>
论router-on-a-stick和VLAN-IF
查看>>
网络分流器-网络分流器-5G的关键技术第一篇
查看>>
区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(超详细教程)
查看>>
大快搜索数据爬虫技术实例安装教学篇
查看>>
Navicat使用教程:从MySQL中的多个表和视图中获取行计数(第3部分)
查看>>
进程和计划任务
查看>>
python机器学习实战(一)
查看>>
rm删除破折号开头的文件或目录
查看>>
找工作的程序员必懂的Linux
查看>>
滴滴发布2018年度总结:又有网友炸锅了
查看>>
PCB画板软件那么多,我到底该学习哪一个?
查看>>
linux创建用户与用户组
查看>>
如何从Spotify Music中删除DRM?
查看>>
VR开发者为Labo VR辩护 预计这可能是任天堂进军VR的开始
查看>>
全面解析大数据框架Hadoop主要模块
查看>>
手写调用门
查看>>
海恩法则与墨菲定律
查看>>