博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
浮动问题
查看>>
hausaufgabe--python 18- Defined specific Functions
查看>>
Django的视图层
查看>>
如何open一个新tab页面
查看>>
iOS开发UI篇—简单介绍静态单元格的使用
查看>>
转:Yupoo(又拍网)的系统架构
查看>>
.读取excel表格(JAVA)
查看>>
清空sql server日志
查看>>
c# 读取记事本txt文档到DataTable中
查看>>
快速通读《现代软件工程——构建之法》
查看>>
Xcode7,ios9 issue ,warning合集
查看>>
Spring整合Quartz定时任务 在集群、分布式系统中的应用(Mysql数据库环境)
查看>>
【英语-刘晓艳-词汇】词汇06
查看>>
Apache版本兼容性问题
查看>>
WIN7 Wireshark: There are no interfaces on which a capture can be done
查看>>
模块化
查看>>
iPad开发--QQ空间,处理横竖屏布局,实现子控件中的代理
查看>>
情怀真的可以吃~致文青
查看>>
Win10无法使用小娜搜索本地应用问题的解决方案
查看>>
[C++]宏定义#define A B C
查看>>