用Servlvet实现文件上传的功能

// file upload module
// It cannot handle nested data (multipart content withinmultipart content)
// or internationalized content (such as non Latin-1 filenames).

//
// Designed by Mouse King, Last modified on August 2nd,2000
// file upload example
// one file control can upload a file once
// you can customize the file size,now it is 5m
// the ftp server target path is /usr/local/jakarta-tomcat/bin。

package BBS;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class UploadTest extends HttpServlet {
String rootPath, successMessage;

static final int MAX_SIZE = 102400;
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}

public void doGet(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException
{
  response.setContentType("text/html");
  PrintWriter out = new PrintWriter (response.getOutputStream());
  out.println("<html>");
  out.println("<head><title>Servlet1</title></head>");
  out.println("<body><form ENCTYPE=/"multipart/form-data/" method=post action=''><input type=file enctype=/"multipart/form-data/" name=filedata>");
  out.println("<input type=submit></form>");
  out.println("</body></html>");
  out.close();
}


public void doPost(HttpServletRequest request,HttpServletResponse response)
{
  ServletOutputStream out=null;
  DataInputStream in=null;
  FileOutputStream fileOut=null;
  try
  {
  /*set content type of response and get handle to output stream in case we are unable to redirect client*/
    response.setContentType("text/plain");
    out = response.getOutputStream();
  }
  catch (IOException e)
  {
    //print error message to standard out
    System.out.println("Error getting output stream.");
    System.out.println("Error description: " + e);
    return;
  }

  try
  {
  String contentType = request.getContentType();
  //make sure content type is multipart/form-data
  if(contentType != null && contentType.indexOf("multipart/form-data") != -1)
  {
    //open input stream from client to capture upload file
    in = new DataInputStream(request.getInputStream());
    //get length of content data
    int formDataLength = request.getContentLength();
    //allocate a byte array to store content data
    byte dataBytes[] = new byte[formDataLength];
    //read file into byte array
    int bytesRead = 0;
    int totalBytesRead = 0;
    int sizeCheck = 0;
    while (totalBytesRead < formDataLength)
    {
      //check for maximum file size violation
      sizeCheck = totalBytesRead + in.available();
      if (sizeCheck > MAX_SIZE)
      {
        out.println("Sorry, file is too large to upload.");
        return;
      }
      bytesRead = in.read(dataBytes, totalBytesRead, formDataLength);
      totalBytesRead += bytesRead;
    }
    //create string from byte array for easy manipulation
    String file = new String(dataBytes);
    //since byte array is stored in string, release memory
    dataBytes = null;
    /*get boundary value (boundary is a unique string that
    separates content data)*/
    int lastIndex = contentType.lastIndexOf("=");
    String boundary = contentType.substring(lastIndex+1,
    contentType.length());
    //get Directory web variable from request
    String directory="";
    if (file.indexOf("name=/"Directory/"") > 0)
    {
      directory = file.substring(file.indexOf("name=/"Directory/""));
      //remove carriage return
      directory = directory.substring(directory.indexOf("/n")+1);
      //remove carriage return
      directory = directory.substring(directory.indexOf("/n")+1);
      //get Directory
      directory = directory.substring(0,directory.indexOf("/n")-1);
      /*make sure user didn't select a directory higher in the directory tree*/
      if (directory.indexOf("..") > 0)
      {
        out.println("Security Error: You can't upload " +"to a directory higher in the directory tree.");
        return;
      }
    }
  //get SuccessPage web variable from request
  String successPage="";
  if (file.indexOf("name=/"SuccessPage/"") > 0)
  {
  successPage = file.substring(file.indexOf("name=/"SuccessPage/""));
  //remove carriage return
  successPage = successPage.substring(successPage.indexOf("/n")+1);
  //remove carriage return
  successPage = successPage.substring(successPage.indexOf("/n")+1);
  //get success page
  successPage = successPage.substring(0,successPage.indexOf("/n")-1);}
  //get OverWrite flag web variable from request
  String overWrite;
  if (file.indexOf("name=/"OverWrite/"") > 0)
  {
  overWrite = file.substring(file.indexOf("name=/"OverWrite/""));
  //remove carriage return
  overWrite = overWrite.substring(
  overWrite.indexOf("/n")+1);
  //remove carriage return
  overWrite = overWrite.substring(overWrite.indexOf("/n")+1);
  overWrite = overWrite.substring(0,overWrite.indexOf("/n")-1);
  }
  else
  {
  overWrite = "false";
  }
  //get OverWritePage web variable from request
  String overWritePage="";
  if (file.indexOf("name=/"OverWritePage/"") > 0)
  {
  overWritePage = file.substring(file.indexOf("name=/"OverWritePage/""));
  //remove carriage return
  overWritePage = overWritePage.substring(overWritePage.indexOf("/n")+1);
  //remove carriage return
  overWritePage = overWritePage.substring(overWritePage.indexOf("/n")+1);
  //get overwrite page
  overWritePage = overWritePage.substring(0,overWritePage.indexOf("/n")-1);
  }
  //get filename of upload file
  String saveFile = file.substring(file.indexOf("filename=/"")+10);
  saveFile = saveFile.substring(0,saveFile.indexOf("/n"));
  saveFile = saveFile.substring(saveFile.lastIndexOf("//")+1,
  saveFile.indexOf("/""));
  /*remove boundary markers and other multipart/form-data
  tags from beginning of upload file section*/
  int pos; //position in upload file
  //find position of upload file section of request
  pos = file.indexOf("filename=/"");
  //find position of content-disposition line
  pos = file.indexOf("/n",pos)+1;
  //find position of content-type line
  pos = file.indexOf("/n",pos)+1;
  //find position of blank line
  pos = file.indexOf("/n",pos)+1;
  /*find the location of the next boundary marker
  (marking the end of the upload file data)*/
  int boundaryLocation = file.indexOf(boundary,pos)-4;
  //upload file lies between pos and boundaryLocation
  file = file.substring(pos,boundaryLocation);
  //build the full path of the upload file
  String fileName = new String(rootPath + directory +
  saveFile);
  //create File object to check for existence of file
  File checkFile = new File(fileName);
  if (checkFile.exists())
  {
  /*file exists, if OverWrite flag is off, give
  message and abort*/
  if (!overWrite.toLowerCase().equals("true"))
  {
  if (overWritePage.equals(""))
  {
  /*OverWrite HTML page URL not received, respond
  with generic message*/
  out.println("Sorry, file already exists.");
  }
  else
  {
  //redirect client to OverWrite HTML page
  response.sendRedirect(overWritePage);
  }
  return;
  }
  }
  /*create File object to check for existence of
  Directory*/
  File fileDir = new File(rootPath + directory);
  if (!fileDir.exists())
  {
  //Directory doesn't exist, create it
  fileDir.mkdirs();
  }
  //instantiate file output stream
  fileOut = new FileOutputStream(fileName);
  //write the string to the file as a byte array
  fileOut.write(file.getBytes(),0,file.length());
  if (successPage.equals(""))
  {
  /*success HTML page URL not received, respond with
  eneric success message*/
  out.println(successMessage);
  out.println("File written to: " + fileName);
  }
  else
  {
  //redirect client to success HTML page
  response.sendRedirect(successPage);
  }
  }
  else //request is not multipart/form-data
  {
  //send error message to client
  out.println("Request not multipart/form-data.");
  }
  }
  catch(Exception e)
  {
  try
  {
  //print error message to standard out
  System.out.println("Error in doPost: " + e);
  //send error message to client
  out.println("An unexpected error has occurred.");
  out.println("Error description: " + e);
  }
  catch (Exception f) {}
  }
  finally
  {
  try
  {
  fileOut.close(); //close file output stream
  }
  catch (Exception f) {}
  try
  {
  in.close(); //close input stream from client
  }
  catch (Exception f) {}
  try
  {
  out.close(); //close output stream to client
  }
  catch (Exception f) {}
  }
  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本微信小程序医院挂号预约系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此微信小程序医院挂号预约系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。微信小程序医院挂号预约系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,医生信息管理,医院信息管理,科室信息管理,预约信息管理,预约取消管理,留言板,系统管理。微信小程序用户可以注册登录,查看医院信息,查看医生信息,查看公告资讯,在科室信息里面进行预约,也可以取消预约。微信小程序医院挂号预约系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值