java 文件的上传和下载
主要介绍使用 smartupload.jar 包中的方法对文件的上传和下载。上传时文件是存放在服务器中,我用的是tamcat。
首先建立一个servlet 类,对文件的操作
package com.dkt.servlet; import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.lxh.smart.Files;
import org.lxh.smart.SmartUpload;
import org.lxh.smart.SmartUploadException; public class FileUpdownLoad extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
request.setCharacterEncoding("GB2312");
response.setCharacterEncoding("GB2312");
SmartUpload su = new SmartUpload(); String op = request.getParameter("op");
if (("upload").equals(op)) {
su.initialize(getServletConfig(), request, response);//初始化
su.setAllowedFilesList("txt,jpg,png,docx,xml,PNG,xlsx");//允许上传的文件类型,区分大小写
try {
su.setDeniedFilesList("html,exe");//不允许上传的文件类型
} catch (SQLException e) {
e.printStackTrace();
}
su.setMaxFileSize(5000000);//文件大小 /*Files files = su.getFiles();
org.lxh.smart.File file2 = files.getFile(0);
System.out.println(file2.getFileName());
for(int i=0;i<files.getCount();i++){
org.lxh.smart.File file = files.getFile(i);
String fileName = file.getFileName();
System.out.println("fileName---->"+fileName);
fileName = new String(fileName.getBytes("ISO-8859-1"),"GB2312");
try {
file.saveAs(fileName);
} catch (SmartUploadException e) {
e.printStackTrace();
}
}*/
try {
su.upload();//上传
su.save("/smartUpdownload");//上传的路径,在tomcat下的文件夹中
System.out.println("上传成功!!!");
} catch (SmartUploadException e) {
e.printStackTrace();
}
request.getRequestDispatcher("fileUpDownload.jsp").forward(request, response);
}else if(("showFiles").equals(op)){
//得到上传到服务器的文件夹
String realPath = this.getServletContext().getRealPath("smartUpdownload");
//得到所有文件的文件名,并显示在页面上
File file = new File(realPath);
File[] listFiles = file.listFiles();
ArrayList<String> list = new ArrayList<String>();
for (File fi : listFiles) {
list.add(fi.getName());//把所有的文件名存入集合
}
request.setAttribute("list", list);
request.getRequestDispatcher("fileUpDownload.jsp").forward(request, response);
}else if(("download").equals(op)){
su.initialize(getServletConfig(), request, response);//初始化
su.setContentDisposition(null);
String filename1 = request.getParameter("filename");
String filename = new String(filename1.getBytes("ISO-8859-1"), "GB2312");
System.out.println(filename);
try {
su.downloadFile("/smartUpdownload/"+filename);
} catch (SmartUploadException e) {
e.printStackTrace();
}
} } }
jsp 内容如下:
这里使用到了 c 标签,所以需要两个jar包 jstl.jar 和 standard-1.1.2.jar
并使用
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 导入包
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="org.lxh.smart.SmartUpload"%>
<%@page import="org.lxh.smart.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 'fileUpDownload.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>
<form action="FileUpdownLoad?op=upload" method="post" enctype="multipart/form-data" >
<input type="file" name="file1" value="上传的文件">
<input type="submit" value="上传">
</form>
<hr/>
<a href = "FileUpdownLoad?op=showFiles">显示下载的文件目录</a><br/>
<c:forEach items="${list}" var="filename">
<a href="FileUpdownLoad?op=download&filename=${filename }">下载文件:${filename }</a><br/>
</c:forEach> <a href="ImageServlet">显示水印图片</a>
</body>
</html>
java 文件的上传和下载的更多相关文章
- Java 文件本地上传、下载和预览的实现
以下方法为通用版本 实测图片和pdf 都没有问题 上传方法需要前端配合post请求 ,下载前端用a标签就可以,预览 前端使用ifrme标签 ,就可以实现基本功能... 1.文件本地上传 publi ...
- java实现ftp文件的上传与下载
最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...
- 初学Java Web(7)——文件的上传和下载
文件上传 文件上传前的准备 在表单中必须有一个上传的控件 <input type="file" name="testImg"/> 因为 GET 方式 ...
- java web(四):request、response一些用法和文件的上传和下载
上一篇讲了ServletContent.ServletCOnfig.HTTPSession.request.response几个对象的生命周期.作用范围和一些用法.今天通过一个小项目运用这些知识.简单 ...
- java实现文件的上传和下载
1. servlet 如何实现文件的上传和下载? 1.1上传文件 参考自:http://blog.csdn.net/hzc543806053/article/details/7524491 通过前台选 ...
- java客户端文件的上传和下载
java客户端文件的上传和下载 //上传 public JTable upload(String id){ JTable table=new JTable(); System.out.println( ...
- Java中文件的上传与下载
文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileupload实现文件上传,下载 [u ...
- 在SpringMVC框架下实现文件的 上传和 下载
在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8" ...
- Apache FtpServer 实现文件的上传和下载
1 下载需要的jar包 Ftp服务器实现文件的上传和下载,主要依赖jar包为: 2 搭建ftp服务器 参考Windows 上搭建Apache FtpServer,搭建ftp服务器 3 主要代码 在ec ...
随机推荐
- linux安装redis 完整步骤
原文连接:https://www.cnblogs.com/lauhp/p/8487029.html 安装: 1.获取redis资源 wget http://download.redis.io/rele ...
- python 入门级教你如何拿到小姐姐微信
第一题: 首先错误的思路,首先找出 707829217/2+1 里面的所有奇数,然后再利用两个for,来判断 import math def func_get_prime(n): return ...
- 通过Maven简单搭建SSM框架
创建Maven就不用多说了,下面直接看Pom.xml里面的依赖吧 <properties> <!-- spring版本号 --> <spring.version>5 ...
- 条目二十二《切勿修改set或multiset的键》
条目二十二<切勿修改set或multiset的键> 所有的标准关联容器一样,set和multiset按照一定的顺序来存放自己的元素,而这些容器的正确行为也是建立在其元素保持有序的基础之上的 ...
- leetcode-766-Toeplitz Matrix(每一条对角线元素的比较)
题目描述: A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now ...
- tomcat 搭建以及发布配置
身为开发人员, 一直干着开发的事情, 只干开发的事情, 却缺少了对于环境部署方面的必备技能的培养, 所以在公司安排的手头任务解决完的情况下, 自己抽空了解并且实践了一下tomcat的配置.写下通过网络 ...
- Machine learning 吴恩达第二周coding作业(必做题)
1.warmUpExercise: function A = warmUpExercise() %WARMUPEXERCISE Example function in octave % A = WAR ...
- NASA的10条代码编写原则
NASA的10条代码编写原则 作者: Gerard J. Holzmann 来源: InfoQ 原文链接 英文原文:NASA's 10 Coding Rules for Writing Safety ...
- 3期浅析宽字节注入-----SQL注入
通过分类的名称,你就可以找到漏洞银行的hack show视频. 吸收这个知识的几个关键的信息. 1.通过视频得到知识源. [信息来源] 我怎么从不清楚到知道这个信息来源?这个过程没办法 ...
- springboot项目,执行查询方法报错
org.hibernate.LazyInitializationException: could not initialize proxy [com.myproject.sell.dataobject ...