关于图片上传与下载(Java)
图片的上传
package com.upload;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
@SuppressWarnings("serial")
public class DoUploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
// 新建一个SmartUploaf对象
SmartUpload su = new SmartUpload();
// 得到PageContext对象
PageContext pageContext = JspFactory
.getDefaultFactory()
.getPageContext(this, request, response, null, true, 8192, true);
// 上传初始化
su.initialize(pageContext);
try {
// 上传文件
su.upload();
// 将文件保存到指定的目录,并返回上传文件数
int count = su.save("/js");
out.print("<center>"+count + "个文件上传成功!<br>" + su.toString()+"</center>");
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out
.print(" <style type='text/css'>"
+ "<!--"
+ ".STYLE3 {"
+ " font-size: 12px"
+ "}"
+ "-->"
+ "</style>"
+ " <table width='600' border='1' id='tableInfo'"
+ " style='border: 1px solid #CCCCCC; '"
+ " cellpadding='0' cellspacing='0' align='center'>");
// 逐一提取上传文件信息,同事保存文件
for (int i = 0; i < su.getFiles().getCount(); i++) {
File file = su.getFiles().getFile(i);
// 显示当前文件信息
out
.print(" <tr>"
+ " <td width='28%'>"
+ " <div align='right' class='STYLE3'>"
+ " 表单项名(getFieldName): </div> </td>"
+ " <td width='72%'>"
+ file.getFieldName()
+ " </td>"
+ " </tr>"
+ " <tr>"
+ " <td>"
+ " <div align='right' class='STYLE3'>"
+ " 文件长度(getSize): </div> </td>"
+ " <td>"
+ file.getSize()
+ " </td>"
+ " </tr>"
+ " <tr>"
+ " <td>"
+ " <div align='right' class='STYLE3'>"
+ " 文件名(getFileName): </div> </td>"
+ " <td>"
+ file.getFileName()
+ " </td>"
+ " </tr>"
+ " <tr>"
+ " <td>"
+ " <div align='right' class='STYLE3'>"
+ " 文件扩展名(getFileExt): </div> </td>"
+ " <td>"
+ file.getFileExt()
+ " </td>"
+ " </tr>"
+ " <tr>"
+ " <td>"
+ " <div align='right' class='STYLE3'>"
+ " 文件全名(getFilePathName): </div> </td>"
+ " <td>"
+ file.getFilePathName()
+ " </td>" + " </tr>");
}
out.print(" </table>");
}
}
图片的下载
package com.upload;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
@SuppressWarnings("serial")
public class DoDownLoadServlet 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 {
response.setContentType("text/html;charset=GB2312");
//得到 要下载的文件的名称
String fileName=new String(request.getParameter("fileName").getBytes("ISO8859-1"),"GB2312");
//得到SmartUpload对象
SmartUpload su=new SmartUpload();
//得到PageContext对象
PageContext pagecontext=JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);
//初始化su
su.initialize(pagecontext);
//下载
su.setContentDisposition(null);
try {
su.downloadFile("/js/"+fileName);
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相关jar包:http://www.cnblogs.com/cz-xjw/admin/Files.aspx
关于图片上传与下载(Java)的更多相关文章
- [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)
目录 1.效果预览 2.新增逻辑概览 3.tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4.__init__.py 逻辑介绍 5.upload.html ...
- thinkphp微信开发之jssdk图片上传并下载到本地服务器
public function test2(){ $Weixin = new \Weixin\Controller\BaseController(); $this->assign('signPa ...
- 微信JS图片上传与下载功能--微信JS系列文章(三)
概述 在前面的文章微信JS初始化-- 微信JS系列文章(一)中已经介绍了微信JS初始化的相关工作,接下来本文继续就微信JS的图片上传功能进行描述,供大家参考. 图片上传 $(function(){ v ...
- FTP文件上传和下载(JAVA)
前文 1.使用FTP的方式进行文件的上传和下载(非SFTP) 2.本人手打,亲测,代码是最简单的,清晰易懂,需要的同学请结合自己的实际添加业务逻辑 2.第三方的jar包:import org.apac ...
- 基于Angularjs实现图片上传和下载
根据ng-file-uoload实现文件上传和下载实现 网上down下来ng-file-uoload.js,在项目中记得引入服务哦. 示例代码: FileUploaderCtrl.$inject = ...
- Spring Boot +Bootstrap 图片上传与下载,以及在bootstrap-table中的显示
1.前台上传: <input type="file" name="file" id="file"> 2.后台的接收与处理: St ...
- Spring MVC 上传、下载、显示图片
目录 1. 准备工作 1.1 数据库表准备 1.2 实体类 User 和 Mapper(DAO) 1.3 pom.xml 依赖包 1.4 SSM 框架的整合配置 2. 控制器 UserControll ...
- WebApi2 文件图片上传下载
Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一.项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交.具体的跨域配置方 ...
- 使用KindEditor完成图片上传(springmvc&fastdfs/springmvc&ftp)
前端使用KindEditor,后台使用Springmvc 1 拷贝KindEditor相关文件到项目中 拷贝KindEditor相关文件到项目中 2 准备一个jsp页面 页面中我准备了一个超链接,点击 ...
随机推荐
- IO-Polling的代码分析
在前一篇文章<IO-Polling实现分析与性能评測>中提到了IO-Polling与中断的原理差别,并通过两种模式下NVMe SSD的性能測试对两者进行了对照. 这篇文章将深入到IO-Po ...
- 回溯法——n后问题
问题描述: 在n*n的棋盘上放置彼此不受攻击的n个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于在n*n格的棋盘上放置n个皇后,任何2个皇后不放在同一行 ...
- 1400 序列分解(dfs)
1400 序列分解 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 小刀和大刀是双胞胎兄弟.今天他们玩一个有意思的游戏. 大刀给小刀准备了一个长度为n的整数序列.小 ...
- Go语言的一些问题
1.go 运行错误expected 'package', found 'EOF'解决? 只要将文件保存一下,再运行就ok了. 2.问题如下: D:\goprojects>go buildcan' ...
- ubuntu1.4搭建zookeeper3.5.2分布式集群
1.下载 官网链接:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.2-alpha/zookeeper-3.5.2-alpha.ta ...
- 如何修改本地hosts文件?
1.window7修改本地hosts文件 # window7系统hosts文件位置 C:\Windows\System32\drivers\etc 2.linux # linux系统hosts文件位置 ...
- 查看hive的配置信息
在启动hive时设置配置属性信息 $ bin/hive --hiveconf <property=value> 查看当前所有的配置信息 hive > set ; hive (db_h ...
- JavaScript四则运算计算器
直接上代码: 首先是HTML代码 <form> 第一个数字:<br> <input type="text" id="num1"&g ...
- Java基础—多态
1.什么是多态 多态是同一个行为具有多个不同表现形式或形态的能力. 多态性是对象多种表现形式的体现. 现实中,比如我们按下 F1 键这个动作: 如果当前在 Flash 界面下弹出的就是 AS 3 的帮 ...
- ModelSim之TCL仿真
在使用ModelSim时,我们一般都是从界面UI进行操作的,这样也比较直观易学.但是在很多的调试时,发现很多操作都是重复的,修改一下代码就要再次进行相关操作,这样很没有效率.其实,ModelSim是可 ...