- 浏览: 442986 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
Luob.:
楼主 你这个问题怎么搞定的
奇异的 Spring WebApplicationContext 自动关闭 -
u013202238:
...
PDF和Java技术(PDFBox) -
u013202238:
...
PDF和Java技术(PDFBox) -
yuan1225:
您好请问 Discuz论坛的系统设置在哪里,登陆后台后没有 ...
Discuz!论坛通行证与JSP网站的整合 -
美妙人生:
,好,太好了,只是还是不太理解!
Discuz!论坛通行证与JSP网站的整合
package com.highcom.object.common;
import java.io.*;
import javax.servlet.*;
import com.jspsmart.upload.*;
import com.highcom.hcgip.basic.common.*;
import javax.servlet.http.*;
/**
* 处理系统中的各类附件。这些附件被保存到在config.properties中attachmentpath指定的路径下。
* <p>Title: Objective Management System</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* @version 1.0
*/
public class FileKeeper
extends javax.servlet.http.HttpServlet {
public static String base_dir;
static {
base_dir = PropertiesReader.getConfigValue("attachmentpath");
}
public FileKeeper() {
}
public static String getRelativePath(java.io.File abs_path){
String fullpath= abs_path.getAbsolutePath();
String new_fullpath = fullpath.replaceAll("/","\\").toLowerCase();
String new_base_dir = base_dir.replaceAll("/","\\").toLowerCase();
int i=new_fullpath.indexOf(new_base_dir);
if(i<0){
return fullpath;
}else{
return fullpath.substring(i);
}
}
/**
* 上传一个文件,保存到指定文件夹。
* @param for_upload File 需要保存的文件
* @param relative_dir String 指定的文件夹(相对路径),路径用"\\"分割。
* @param rename boolean 是否要系统自动重命名为其它名字
* @return String 如果保存成功,返回相对地址。否则,返回null
*/
public static String upload(com.jspsmart.upload.File for_upload,
String relative_dir, boolean rename) {
if (for_upload == null) {
return null;
}
if (relative_dir == null || relative_dir.length() == 0) {
relative_dir = "\\";
}
if (!relative_dir.startsWith("\\")) {
relative_dir = "\\" + relative_dir;
}
if (!relative_dir.endsWith("\\")) {
relative_dir = relative_dir + "\\";
}
java.io.File dir = new java.io.File(base_dir + relative_dir);
if (!dir.exists()) {
dir.mkdirs();
}
java.io.File saved = null;
if (rename) {
try {
saved = java.io.File.createTempFile("sys", "", dir);
}
catch (Exception ex) {
ex.printStackTrace();
Log.debug(ex, "FileKeeper");
}
}
else {
String filename = for_upload.getFileName();
saved = new java.io.File(dir.getAbsolutePath() +
java.io.File.separator + filename);
}
if (saved == null) {
return null;
}
try {
for_upload.saveAs(saved.getAbsolutePath(),
SmartUpload.SAVE_PHYSICAL);
}
catch (Exception ex) {
ex.printStackTrace();
Log.debug(ex, "FileKeeper");
saved = null;
}
if(saved!=null){
return relative_dir + saved.getName();
}else{
return null;
}
}
/**
* 取得一个指定文件的流。
* @param relative_path String 相对路径,包含文件名。
* @return InputStream 该文件的输入流,供外部程序读取。
*/
public static InputStream download(String relative_path) {
if (!relative_path.startsWith("\\")) {
relative_path = "\\" + relative_path;
}
java.io.File file = new java.io.File(base_dir + relative_path);
if (!file.exists()) {
return null;
}
else {
try {
return new FileInputStream(file);
}
catch (Exception ex) {
ex.printStackTrace();
Log.debug(ex, "FileKeeper");
return null;
}
}
}
/**
* 删除指定文件。
* @param relative_path String 文件的相对路径。请不要以“/”开头。可以用"\"开头,也可以不用。
*/
public static void delete(String relative_path){
if(!relative_path.startsWith("\\")){
relative_path = "\\"+relative_path;
}
java.io.File file = new java.io.File(base_dir+relative_path);
if(file.exists() && file.isFile()){
file.delete();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//System.out.println("do post....");
doGet(request, response);
}
/**
* 处理下载文件的请求。需要在request中提供三个参数:
* 1.path,说明需要下载的文件的相对路径,包含磁盘文件名本身。
* 2.filename,说明一个文件名,这个文件名将成为用户保存文件时的默认用户名。如果不提供,系统取在path中的文件名
* 3.mime,说明文件的MIME_TYPE。如果不提供,默认为"application/*"。
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//System.out.println("FileKeeper do get...");
String relative_path = ParameterParser.getStrPara(request, "path");
String filename = ParameterParser.getStrPara(request, "filename");
String mime = ParameterParser.getStrPara(request, "mime");
if (mime.length() > 0) {
response.setContentType(mime);
}
else {
response.setContentType("application/*");
}
response.setHeader("Content-Disposition",
"attachment;filename=" + filename);
InputStream in = download(relative_path);
if (in == null) {
Log.debug("文件" + filename + "不存在.", this);
response.getOutputStream().close();
return;
}
byte[] b = new byte[1024];
int len;
while ( (len = in.read(b)) > 0) {
response.getOutputStream().write(b, 0, len);
}
in.close();
response.getOutputStream().flush();
response.getOutputStream().close();
}
}
http://www.qjcool.com/Article/pcjiaocheng/200711/58844.html
import java.io.*;
import javax.servlet.*;
import com.jspsmart.upload.*;
import com.highcom.hcgip.basic.common.*;
import javax.servlet.http.*;
/**
* 处理系统中的各类附件。这些附件被保存到在config.properties中attachmentpath指定的路径下。
* <p>Title: Objective Management System</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* @version 1.0
*/
public class FileKeeper
extends javax.servlet.http.HttpServlet {
public static String base_dir;
static {
base_dir = PropertiesReader.getConfigValue("attachmentpath");
}
public FileKeeper() {
}
public static String getRelativePath(java.io.File abs_path){
String fullpath= abs_path.getAbsolutePath();
String new_fullpath = fullpath.replaceAll("/","\\").toLowerCase();
String new_base_dir = base_dir.replaceAll("/","\\").toLowerCase();
int i=new_fullpath.indexOf(new_base_dir);
if(i<0){
return fullpath;
}else{
return fullpath.substring(i);
}
}
/**
* 上传一个文件,保存到指定文件夹。
* @param for_upload File 需要保存的文件
* @param relative_dir String 指定的文件夹(相对路径),路径用"\\"分割。
* @param rename boolean 是否要系统自动重命名为其它名字
* @return String 如果保存成功,返回相对地址。否则,返回null
*/
public static String upload(com.jspsmart.upload.File for_upload,
String relative_dir, boolean rename) {
if (for_upload == null) {
return null;
}
if (relative_dir == null || relative_dir.length() == 0) {
relative_dir = "\\";
}
if (!relative_dir.startsWith("\\")) {
relative_dir = "\\" + relative_dir;
}
if (!relative_dir.endsWith("\\")) {
relative_dir = relative_dir + "\\";
}
java.io.File dir = new java.io.File(base_dir + relative_dir);
if (!dir.exists()) {
dir.mkdirs();
}
java.io.File saved = null;
if (rename) {
try {
saved = java.io.File.createTempFile("sys", "", dir);
}
catch (Exception ex) {
ex.printStackTrace();
Log.debug(ex, "FileKeeper");
}
}
else {
String filename = for_upload.getFileName();
saved = new java.io.File(dir.getAbsolutePath() +
java.io.File.separator + filename);
}
if (saved == null) {
return null;
}
try {
for_upload.saveAs(saved.getAbsolutePath(),
SmartUpload.SAVE_PHYSICAL);
}
catch (Exception ex) {
ex.printStackTrace();
Log.debug(ex, "FileKeeper");
saved = null;
}
if(saved!=null){
return relative_dir + saved.getName();
}else{
return null;
}
}
/**
* 取得一个指定文件的流。
* @param relative_path String 相对路径,包含文件名。
* @return InputStream 该文件的输入流,供外部程序读取。
*/
public static InputStream download(String relative_path) {
if (!relative_path.startsWith("\\")) {
relative_path = "\\" + relative_path;
}
java.io.File file = new java.io.File(base_dir + relative_path);
if (!file.exists()) {
return null;
}
else {
try {
return new FileInputStream(file);
}
catch (Exception ex) {
ex.printStackTrace();
Log.debug(ex, "FileKeeper");
return null;
}
}
}
/**
* 删除指定文件。
* @param relative_path String 文件的相对路径。请不要以“/”开头。可以用"\"开头,也可以不用。
*/
public static void delete(String relative_path){
if(!relative_path.startsWith("\\")){
relative_path = "\\"+relative_path;
}
java.io.File file = new java.io.File(base_dir+relative_path);
if(file.exists() && file.isFile()){
file.delete();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//System.out.println("do post....");
doGet(request, response);
}
/**
* 处理下载文件的请求。需要在request中提供三个参数:
* 1.path,说明需要下载的文件的相对路径,包含磁盘文件名本身。
* 2.filename,说明一个文件名,这个文件名将成为用户保存文件时的默认用户名。如果不提供,系统取在path中的文件名
* 3.mime,说明文件的MIME_TYPE。如果不提供,默认为"application/*"。
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
//System.out.println("FileKeeper do get...");
String relative_path = ParameterParser.getStrPara(request, "path");
String filename = ParameterParser.getStrPara(request, "filename");
String mime = ParameterParser.getStrPara(request, "mime");
if (mime.length() > 0) {
response.setContentType(mime);
}
else {
response.setContentType("application/*");
}
response.setHeader("Content-Disposition",
"attachment;filename=" + filename);
InputStream in = download(relative_path);
if (in == null) {
Log.debug("文件" + filename + "不存在.", this);
response.getOutputStream().close();
return;
}
byte[] b = new byte[1024];
int len;
while ( (len = in.read(b)) > 0) {
response.getOutputStream().write(b, 0, len);
}
in.close();
response.getOutputStream().flush();
response.getOutputStream().close();
}
}
http://www.qjcool.com/Article/pcjiaocheng/200711/58844.html
发表评论
-
jquery 操作checkbox的例子(全选,反选,获取选取值)
2009-05-21 17:17 5255jquery 操作checkbox的例子(全选,反选,获取选取 ... -
struts2 捕获404错误
2008-11-28 22:04 5184当访问一个不存在页面时,一般显示404错误,这是一个很不友好的 ... -
mysql alter 语句用法,添加、修改、删除字段等
2008-11-06 12:15 1581mysql alter 语句用法,添加、修改、删除字段等 / ... -
mysql数据库自动定期备份的脚本
2008-07-30 15:51 2063说明: 保留每天备份的数据是件不太现实的事,做好的做 ... -
CVS的日常使用
2008-07-22 16:50 1464一个项目的首次导入 cvs ... -
Advanced SiteMesh
2008-07-14 11:40 1158假设你打算结合多种技 ... -
Discuz! 数据库结构参考(下)
2008-06-30 09:40 3121Discuz! 数据库结构参考 ... -
Discuz! 数据库结构参考(上)
2008-06-30 09:39 2018Discuz! 数据库结构参考(上) cdb_access-- ... -
mysql 外鍵約束
2008-06-24 10:43 36741. 什么是参照完整性? ... -
mysql4.1以上版本连接时出现Client does not support authentic
2008-06-18 14:05 1245mysql4.1以上版本连接时出现Client does no ... -
Linux下两个不同版本Mysql的安装实战
2008-06-17 12:42 2784http://www.iteye.com/topic/2039 ... -
查看文本文件的编码格式
2008-06-13 17:16 3807Ubuntu enca命令可以用来查看文件的编码格式 安装 ... -
redhat9上用rpm包方式升级gcc3.2到gcc3.4
2008-06-11 09:50 4291刚刚安了个redhat9,发现gcc是3.2版本的,看到有文章 ... -
PHP+apache+mysql编程中乱码问题的解决
2008-06-10 17:20 2235作者: 乐道 2007-11 ... -
修改firefox 3的语言界面
2008-05-14 10:20 4740进入http://releases.mozilla.org/p ... -
Apache虚拟主机设置
2008-04-16 16:50 1857简介:这里说的虚拟主 ... -
Discuz!论坛通行证与JSP网站的整合
2008-04-11 16:43 5776最近做有关JSP与DISCUZ整合,搞了好久,还是搞不定,后来 ... -
PDF和Java技术(PDFBox)
2008-04-10 17:06 14710原文标题:Making PDFs Port ... -
Discuz 通行证的制作方法和详细说明
2008-04-09 17:42 2283通行证是个大题目,说白了也就是如何维护客户的会话,在php中所 ... -
使用Lucene2.3构建搜索引擎
2008-04-03 20:06 2569Lucene不是一个完整的全文索引应用,而是是一个用Java写 ...
相关推荐
无需任何设置,上传到支持asp.net的主机空间即可使用。 系统内置多套网络商城专业模板,适合开网上书店、花店、数码产品店、化妆品、手机店。网奇官方网站(http://www.wangqi.com)更不定时的推出新的精美模板。 ...
24:附件上传按后缀,时间分别建立目录 25:全面支持无大类、无小类文章,各级页面均支持模板 26:最新添加单位稿件统计(旧版本升级请后台运行Tools_UpdateDB-11-6.asp升级数据库) 27:其他错误修正 29:首页...
1.上传的文件按日期放于附件文件夹内 2.改写了图片文件类型判断和站外文件判断函数 3.搜索单独放于search文件夹内 4.重新调整了调用的标签,更加人性化 5.分离了列表、搜索、公告等分页,更加方便设置分页和列表...
强大字段自定义功能,完善的后台开关模块,不会编程也能搭建各类网站系统。 4、会员、留言、投稿神马一个不能少 不断升级完善的模块与插件,灵活的组装与自定义设置,满足你的多样需求。 5、安装、升级、备份、...
24:附件上传按后缀,时间分别建立目录 25:全面支持无大类、无小类文章,各级页面均支持模板 26:最新添加单位稿件统计(旧版本升级请后台运行Tools_UpdateDB-11-6.asp升级数据库) 27:其他错误修正 29:首页...
本程序结合了OA办公系统+HR人力资源管理系统+CRM客户关系管理系统集合而成。我们把程序设计信息化应用分为三个方面的内容:通用办公应用、业务管理和决策支持。采用现代最新技术,建立一种新概念的、开放的现代管理...
2. **作业发布与提交**:教师可以发布作业,设置截止日期和上传相关附件;学生可以在规定时间内提交作业。 3. **自动批改**:系统内置了多种批改算法,可根据作业类型自动计算成绩,并给出批改建议。 4. **手动批改*...
任何上传的图片文件经过系统处理后都可以轻松打上水印。 12、经验丰富、服务周到: 打造国内品牌, 值得您的信赖,仙人掌软件不断完 善和优化各种操作细节,用户 使用仙人掌软件会是一个愉快的体验 SmartSite智能...
16、更换编辑器为kindeditor17、增加系统安全密钥功能,对隐私数据进行加密处理,进一步提高安全性能18、其他多达50处细节功能优化调整,进一步提成兼容性、执行效率等。 特色: 1、架构轻盈,完全免费与开源 ...
在报表设计器中设计完成后的报表模板,上传到OA系统中,访问者就可以查看相关的报表的内容,报表的内容会根据定义好的SQL条件进行实时获取数据。 可以根据要求,自动生成日报表,周报表,月报表,自动发送到相关人员...
在插入时只用一个万能按钮,填入地址,系统自动识别文件类型,并做相应处理。现在这个按按钮我还没想好用什么图标,有兴趣的朋友帮阿余设计一个如何? 4 编辑器插入表格的功能也得到了加强。 5 首页可以自动定义...
11.修复图片及下载类模型上传附件,不能插入到编辑器 12.修复商城购物车改变选购数量,不按规格属性里设置的库存量进行判断 13.修复后台搜索文档,输入关键字带有单引号会出错 14.修复商城系统,会员中心添加收货...
管理员可上传附件,跟随在信息后面起到补充作用; 管理员可设定信息的自动发布时间和自动过期日期,系统会根据预设智能发布或撤销信息; 管理员可设定某条信息为首页信息,系统自动将其更新在首页上; 浏览者可通过...
重构 风格模板以及CSS,让风格制作更简易降低 页面数据输出量,提升页面渲染速度调整 各功能显示细节,增大提示信息的友好度改善 直接下载收费附件的用户体验改善 趋势统计功能用户体验改进改进 论坛提示系统的显示...
人力资源管理软件增加退出系统时提示(感谢中秋月) 2008-01-22 人力资源管理软件做了以下改进 人力资源管理软件改进了员工调岗的编辑界面(感谢缺月疏桐) 增加了计件工资的功能,包括工序定义、计件录入和查询...
5. 新增:本地附件上传和FTP以及云存储方式; 6. 新增:微官网,支持DIY模式 7. 新增:语音消息的支持; 8. 新增:LBS回复信息的支持; 9. 优化:可视化自定义菜单; 10. 新增:自定义应答菜单; 11. 开放:...
论坛数据库已经做好了防下载的处理,但仍然希望您能够修改数据库的名称,把扩展名改成asp,并且同时修改conn.asp中数据库的名称。 2。如果是全新使用本论坛那么请新建一个论坛管理员(先注册一个用户,以原管理...
v5.0对SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等主要威胁进行了系统的处理,实现了灵活、细致的权限管理功能,充分构筑了应用程序级安全。 8、易于扩展,便于开发 v5.0站点导航可自定义、可快速增加...
附件上传功能,更加详尽显示文件参数 006.上传非法附件检测,一些修改扩展名上传的将被阻止 007.限制每个用户每天上传文件数,实时统计绝对可靠 008.用户等级制度,等级名称后台随意设置 009.强化的...