Java 上传下载的
1.上传的步骤:
a.导入SmartUpload.jar b.创建一个上传的类的对象 c.初始化 d.上传至服务器 e.保存 注意:表单提交时需要指定enctype="multipart/form-data"(多数据类型提交)。
上传的jar包有SmartUpload.jar 和 fastupload-core-0.6.3.jar 可以在网上找一找,它们都可以实现伤上传的功能,我们就用SmartUpload.jar来试一试。
①创建一个Java web 项目(用帕斯卡命名 就是首字母小写 列如:upioad,ownioad或者upioadOwnioad)
②导包SmartUpload.jar 放在WebRoot→WEB-INF→lib中
③创建一个Servlet的Java类实现HttpServlet接口 (用驼峰命名 就是每个首字母大写 列如:UpioadServlet, OwnioadServlet)
④上传部分的代码 (UpioadServlet)
package upioad;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartFile;
import com.jspsmart.upload.SmartFiles;
import com.jspsmart.upload.SmartUpload;
public class UploadServlet<Files> extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建一个上传下载的对象 SmartUpload su=new SmartUpload();
//初始化对象 su.initialize(getServletConfig(), request, response);
try {
//限制上传文件的后缀
su.setAllowedFilesList("txt,doc,jpg");
//设置文件上传的大小限制
su.setMaxFileSize(1024*1024*2);//2M字节数
//上传文件到服务器
su.upload();
SmartFiles fs=su.getFiles();
su.save("/files/");
for(int i=0;i<fs.getCount();i++) {
SmartFile f=fs.getFile(i);
System.out.println(f.getFileExt());
//判断f是否存在
if(f.isMissing()==false)
{
//文件存在.另存为 用时间的方式存储文件名 重复存储相同的文件,不被覆盖
f.saveAs("/files/"+System.currentTimeMillis()+f.getFileName());
}
}
//指定文件保存路径
su.save("/files");
System.out.println("上传成功");
request.getRequestDispatcher("../show.jsp").forward(request, response); //内部跳转
} catch (Exception e) {
// TODO Auto-generated catch block
request.setAttribute("eroor","文件格式不正确");
request.getRequestDispatcher("../index.jsp").forward(request, response); //内部跳转
}
}
}
jsp 简单页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>上传页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body>
<form action="servlet/UploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" ><br><br>
<input type="submit" value="上传"/>${eroor }
</form>
</body>
</html>
⑤下载部分代码(OwnioadServlet)
package ownioad;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
public class DownLoad extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取要下载文件的名称
String name =new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
System.out.println(request.getParameter("name"));
//创建一个上传下载的对象
SmartUpload su=new SmartUpload();
//初始化对象
su.initialize(getServletConfig(), request, response);
try {
//设置下载对象内容不自动打开
su.setContentDisposition(null);
//调用下载的方法
su.downloadFile("/files/"+name);
System.out.println("下载成功!");
} catch (SmartUploadException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
}
jsp 简单页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="java.io.File"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'show.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body>
<% File f =new File(application.getRealPath("/files"));
File []fs=f.listFiles();
if(fs!=null && fs.length>0)
{ for(File file:fs)
{ out.print(file.getName());
%>
<a href="fig?name=<%=file.getName() %>">
<%=file.getName() %><br/></a>
<%
}
}
%>
</body>
</html>
送大家一句话 ;代码虐 我千百遍 ,我视代码如初恋
Java 上传下载的的更多相关文章
- 【java 上传+下载】
一.先说说上传 第一步:pom.xml文件 加上 上传文件依赖架包 <dependency> <groupId>commons-fileupload</groupId&g ...
- Java上传下载excel、解析Excel、生成Excel
在软件开发过程中难免需要批量上传与下载,生成报表保存也是常有之事,最近集团门户开发用到了Excel模版下载,Excel生成,圆满完成,对这一知识点进行整理,资源共享,有不足之处还望批评指正,文章结尾提 ...
- JAVA中使用FTPClient上传下载
Java中使用FTPClient上传下载 在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在c ...
- JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...
- Java FTPClient实现文件上传下载
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- JAVA中使用FTPClient实现文件上传下载
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- java实现多线程断点续传,上传下载
采用apache 的 commons-net-ftp-ftpclient import java.io.File; import java.io.FileOutputStream; import ja ...
- JAVA Web 之 struts2文件上传下载演示(二)(转)
JAVA Web 之 struts2文件上传下载演示(二) 一.文件上传演示 详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397 二.文件下载 ...
- JAVA Web 之 struts2文件上传下载演示(一)(转)
JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...
随机推荐
- docker安装-centos7
操作系统要求 要安装Docker,您需要64位版本的CentOS 7.步骤: 卸载旧版本 Docker的旧版本被称为docker或docker-engine . 如果这些已安装,请卸载它们以及关联 ...
- OVS + dpdk 安装与实验环境配置
***DPDK datapath的OVS的安装与实验环境配置 首先肯定是DPDK的安装 0:安装必要的工具 make gcc ...
- Java之FilenameFilter接口
FilenameFilter接口:是用于过滤文件的 要实现的是accept方法 实例代码: 1,匿名类实现FilenameFilter-–过滤指定类型文件 package File类过滤器; impo ...
- ACL2016信息抽取与知识图谱相关论文掠影
实体关系推理与知识图谱补全 Unsupervised Person Slot Filling based on Graph Mining 作者:Dian Yu, Heng Ji 机构:Computer ...
- Eclipse中SVN设置文件为ignore后重新添加至版本控制
先前把需要版本控制的文件夹ignore了,用了很长时间找解决方法,结果发现竟如此简单,对eclipse的功能不熟悉啊. 方法如下: 在Window->Show View -> Naviga ...
- 安装python2.7
系统的yum程序使用的是python2.6,不能够卸载系统所带的python环境.python2.7的安装命令如下 tar vjxf Python-2.7.1.tar.bz2 cd Python-2. ...
- IntelliJ IDEA的激活和汉化
1.下载 IntelliJ IDEA 下载地址 Community 社区版,免费使用,下载后发现没有JAVA EE,推荐下载 Ultimate Ultimate 需要注册码. 2.激活 我下载的是20 ...
- docker 汇总
整理中 ... 一. docker 基础 配置参数最佳实践 二. docker 编排工具 docker swarm mesos kubernetes AWS ECS 三. docker 生态 dock ...
- [项目记录]一个.net下使用HAP实现的吉大校园通知网爬虫工具:OAWebScraping
第一章 简介 本文主要介绍了在.NET下利用优秀的HTML解析组件HtmlAgilityPack开发的一个吉林大学校内通知oa.jlu.edu.cn的爬取器.尽管.Net下解析HTML文件有很多种选择 ...
- Windows系统完全退出VMware方法
原始日期:2013-11-30 16:09 事件起因:本来机子上装的Vbox,装了个winXp系统,目的是将一些开发用地软件工具神马的安装在虚拟机,保证主机的流畅稳定.无奈,Vbox对主机与虚拟机的文 ...