`
liuzm
  • 浏览: 101473 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java 文件上传下载

    博客分类:
  • JAVA
阅读更多
在项目中上传下载是必不可少的,在这里我将介绍下上传下载,当然代码写的不太好
但是还是可以给新手参考,学习下子咧
代码如下:
前台:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="cn.laofei.vo.Utility"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
    Utility utility = new Utility(); //取ID 目的是为了让上传的文件名不重复 当然这个ID你也可以自己取,不过我还是建议用这个方法取(年月日分秒,这样文件名就不会重复) 此类项目中 下载即可
    String newid  = utility.getId();
%>
<html>
  <head>

   
    <title>上传,下传,www.liuzm.com</title>

  </head>
 
  <body bgcolor="#FFFFFF" text="#000000"><p><font size="5"color="#FF0000">
  支持多上传
<form action="Upload?id=<%=newid%>" method="post" enctype="multipart/form-data" name="form1">
<!-- 记住 form 表单中一定不要忘记加了 enctype="multipart/form-data" -->
  <input type="file" name="file"></br>
  <input type="file" name="file1">
   <input type="hidden" name="id" value="<%=newid%>"></br>
  <input type="submit" name="Submit" value="upload">
</form>

servlet类:

package com.liuzm;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;

public class Upload extends HttpServlet {

    File tmpDir =null;//初始化上传文件的临时存放目录
    File saveDir =null;//初始化上传文件后的保存目录
    public Upload() {
        super();
    }

    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

   
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        doPost(request,response);
    }

   
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        String id = request.getParameter("id");
//        id+=".jpg";
        try{
            if(ServletFileUpload.isMultipartContent(request)){
            DiskFileItemFactory dff = new DiskFileItemFactory();//创建该对象
            dff.setRepository(tmpDir);//指定上传文件的临时目录
            dff.setSizeThreshold(1024000);//指定在内存中缓存数据大小,单位为byte
            ServletFileUpload sfu = new ServletFileUpload(dff);//创建该对象
            sfu.setFileSizeMax(5000000);//指定单个上传文件的最大尺寸
            sfu.setSizeMax(10000000);//指定一次上传多个文件的总尺寸
            FileItemIterator fii = sfu.getItemIterator(request);//解析request 请求,并返回FileItemIterator集合
            while(fii.hasNext()){
            FileItemStream fis = fii.next();//从集合中获得一个文件流
            if(!fis.isFormField() && fis.getName().length()>0){//过滤掉表单中非文件域
                System.out.println(fis.getName().substring(fis.getName().lastIndexOf(".")));
                String idd = fis.getName().substring(fis.getName().lastIndexOf("."));//取文件的扩展名
                id+=idd;
                System.out.println(fis.getName());
            String fileName = fis.getName().substring(fis.getName().lastIndexOf("."));//获得上传文件的文件名
            String liu =fileName.replace(fileName, id);
            BufferedInputStream in = new BufferedInputStream(fis.openStream());//获得文件输入流
            BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir+"\\"+liu)));//获得文件输出流
            String patha = saveDir+"\\"+liu;  //文件路径
            System.out.println(patha+"\\");
            Streams.copy(in, out, true);//开始把文件写到你指定的上传文件夹
            }
            }
            response.getWriter().println("File upload successfully!!!");//终于成功了
           
            }
            }catch(Exception e){
            e.printStackTrace();
           
            }

    }

    public void init() throws ServletException {
       
        super.init();
        String tmpPath = "c:\\tmpdir\\";
        String savePath = "c:\\liuupdir\\";
        tmpDir = new File(tmpPath);
        saveDir = new File(savePath);
        if(!tmpDir.isDirectory())
        tmpDir.mkdir();
        if(!saveDir.isDirectory())
        saveDir.mkdir();

    }

}

本篇文章来源于 :刘志猛博客 原文链接:http://www.liuzm.com/article/java/9628.htm
http://www.liuzm.com
分享到:
评论

相关推荐

    java文件上传下载工具类

    以下是对"java文件上传下载工具类"这一主题的详细解释。 首先,让我们了解文件上传。在Web应用中,用户可能需要上传文件,如图片、文档或视频。Java通过Servlet API提供了处理文件上传的功能。Servlet 3.0及以上...

    Java文件上传下载.pdf

    Java文件上传下载是Web开发中的常见功能,涉及到客户端与服务器之间的数据传输。根据提供的文件内容,我们可以了解到具体的实现技术点以及使用的工具类。 文件上传: 1. SmartUpload类:SmartUpload是用于文件上传...

    Java文件上传下载实例(含详细注释)

    以下是关于"Java文件上传下载实例(含详细注释)"的详细知识点解析: 1. **Servlet与JSP**: - Java文件上传通常涉及到Servlet技术,Servlet是Java为HTTP协议提供的一种服务端接口,用于处理客户端(浏览器)的请求...

    java文件上传下载完整demo

    总结来说,Java文件上传下载的完整案例涵盖了Servlet API的使用、文件I/O操作以及HTTP响应头的设置。通过学习和实践这个示例,开发者可以掌握基本的文件上传下载功能的实现,为构建更复杂的应用打下坚实的基础。

    java 文件上传下载

    【Java 文件上传下载详解】 在 Web 应用中,文件上传和下载是常见的功能,尤其在用户需要提交图片、文档等资料时。Java 提供了多种实现方式来处理这些需求,其中一种常用的方法是利用 Apache Commons FileUpload ...

    java 文件上传下载 断点续传 断点上传

    总的来说,实现Java文件上传下载以及断点续传涉及的技术包括HTTP协议、Servlet编程、文件I/O操作,以及对网络通信的理解。通过合理运用这些技术,可以构建出高效且用户友好的文件处理系统。而提供的"uploadFile"可能...

    java文件上传下载

    Java文件上传下载是Web开发中常见的功能,尤其在构建企业级应用、个人博客系统或论坛等需要用户交互的场景中,文件上传下载是必不可少的一部分。本项目提供的是一套基于Java的完整文件上传下载解决方案,利用了JSP和...

    Java文件上传下载

    Java文件上传和下载是通过Servlet API实现的,涉及HTTP请求的处理、文件I/O操作以及HTTP响应头的设置。在实际项目中,还需要考虑安全性(如防止文件覆盖、非法文件类型上传等)和性能优化(如使用多线程、缓存等)。...

    java文件上传下载工具

    java文件上传下载工具,支持上传下载,目录创建,文件复制,文件删除

    java文件上传下载jar包

    这里提到的"java文件上传下载jar包"指的是Java中用于处理文件上传和下载操作的库的jar文件。下面将详细介绍这个主题中的相关知识点。 1. **Servlet API**:Java Servlet API是Java Web开发的基础,它提供了处理HTTP...

    java文件上传下载.docx

    Java 文件上传下载 Java 文件上传下载是 Web 应用中非常常见的一种功能,特别是在 JSP 环境中实现文件上传功能非常容易。 Apache 的 Commons FileUpload 组件是实现文件上传功能的一种流行的选择。本文将详细介绍...

    文件上传下载需要的jar包 java文件上传下载

    在这个场景下,"文件上传下载需要的jar包"指的是用于处理文件上传和下载操作的Java类库。下面将详细介绍相关的知识点。 1. **Apache Commons FileUpload**: 这是一个非常流行的Java库,用于处理HTTP请求中的多部分...

    chapter16_java文件上传下载_

    本章("chapter16_java文件上传下载_")将深入探讨如何使用Java实现这些功能。 首先,让我们了解文件上传的基本流程。在Web应用中,文件上传通常涉及到HTTP协议中的多部分表单数据(Multipart Form Data)。用户...

Global site tag (gtag.js) - Google Analytics