- 浏览: 447327 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 5288jquery 操作checkbox的例子(全选,反选,获取选取 ... -
struts2 捕获404错误
2008-11-28 22:04 5242当访问一个不存在页面时,一般显示404错误,这是一个很不友好的 ... -
mysql alter 语句用法,添加、修改、删除字段等
2008-11-06 12:15 1612mysql alter 语句用法,添加、修改、删除字段等 / ... -
mysql数据库自动定期备份的脚本
2008-07-30 15:51 2094说明: 保留每天备份的数据是件不太现实的事,做好的做 ... -
CVS的日常使用
2008-07-22 16:50 1486一个项目的首次导入 cvs ... -
Advanced SiteMesh
2008-07-14 11:40 1181假设你打算结合多种技 ... -
Discuz! 数据库结构参考(下)
2008-06-30 09:40 3149Discuz! 数据库结构参考 ... -
Discuz! 数据库结构参考(上)
2008-06-30 09:39 2048Discuz! 数据库结构参考(上) cdb_access-- ... -
mysql 外鍵約束
2008-06-24 10:43 37221. 什么是参照完整性? ... -
mysql4.1以上版本连接时出现Client does not support authentic
2008-06-18 14:05 1272mysql4.1以上版本连接时出现Client does no ... -
Linux下两个不同版本Mysql的安装实战
2008-06-17 12:42 2819http://www.iteye.com/topic/2039 ... -
查看文本文件的编码格式
2008-06-13 17:16 3839Ubuntu enca命令可以用来查看文件的编码格式 安装 ... -
redhat9上用rpm包方式升级gcc3.2到gcc3.4
2008-06-11 09:50 4335刚刚安了个redhat9,发现gcc是3.2版本的,看到有文章 ... -
PHP+apache+mysql编程中乱码问题的解决
2008-06-10 17:20 2252作者: 乐道 2007-11 ... -
修改firefox 3的语言界面
2008-05-14 10:20 4769进入http://releases.mozilla.org/p ... -
Apache虚拟主机设置
2008-04-16 16:50 1885简介:这里说的虚拟主 ... -
Discuz!论坛通行证与JSP网站的整合
2008-04-11 16:43 5814最近做有关JSP与DISCUZ整合,搞了好久,还是搞不定,后来 ... -
PDF和Java技术(PDFBox)
2008-04-10 17:06 14756原文标题:Making PDFs Port ... -
Discuz 通行证的制作方法和详细说明
2008-04-09 17:42 2338通行证是个大题目,说白了也就是如何维护客户的会话,在php中所 ... -
使用Lucene2.3构建搜索引擎
2008-04-03 20:06 2623Lucene不是一个完整的全文索引应用,而是是一个用Java写 ...
相关推荐
标题中的“论坛附件下载器”指的是一个专门设计用于帮助用户批量下载论坛中发布的各种附件的软件工具。在互联网上,论坛是一种常见的交流平台,用户可以在其中发布文本、图片、文档等各类文件作为附件来分享信息。...
在当今信息化时代,文件上传功能已经成为各类应用系统中的基本需求之一。特别是在企业级应用中,用户往往需要上传多个文件进行业务处理,这就对系统的文件上传功能提出了更高的要求。本文将通过分析一个多附件上传的...
【DK异站附件上传插件】是一款专为不同版本论坛设计的高效附件上传工具,它支持5.x、6.x以及7.x三个版本的论坛系统,为用户提供了便捷且高效的文件分享功能。这款插件旨在优化论坛用户体验,提高上传效率,确保用户...
3. **格式支持广泛**:Discuz论坛支持的各类附件格式,如图片(JPEG, PNG, GIF等)、文档(DOC, PDF, PPT等)和压缩包等,此工具都能进行批量处理。 4. **自动分类**:根据用户设定,工具可能能够将上传的附件自动...
在公文传输系统中,ASP用于处理用户请求,生成动态内容,如显示公文列表、处理公文上传与下载等操作。例如,文件`global.asa`是ASP应用程序的核心配置文件,它定义了应用程序的全局变量和事件处理程序,确保系统运行...
6. **文档管理**:上传、存储和下载相关的附件,如报告、附件、图片等。 7. **统计分析**:统计公文数量、处理时间等,提供报表以便管理层决策。 解压密码为“www.cqlsoft.com”,这表明该资源可能来源于存起来软件...
1. **文件上传下载**:在Web应用中,通常通过Servlet或Spring的MultipartFile接口处理文件上传。文件会被存储在服务器的某个目录下,下载则是根据文件路径提供HTTP响应。安全性和文件管理策略(如文件命名规则、权限...
论坛系统的上传文件夹,主要用于存放用户上传的图片、附件和其他媒体文件。这个目录的设置通常需要考虑到安全性,防止非法文件上传,同时也需要优化访问速度,比如通过缓存技术提高附件的加载效率。 “readme”...
系统可能使用了Apache Commons FileUpload或SpringMVC的MultipartFile接口来处理文件上传,将文件保存在服务器的特定目录,并在数据库中记录文件路径,方便后续访问和下载。 时间选择器是用户选择日期的关键组件,...
3. **退税申请**:说明如何通过系统提交退税申请,包括申请表的填写、所需附件的上传以及申请流程的跟踪。 4. **审批流程**:介绍系统的审批流程,包括各级税务机关的审核步骤,帮助用户理解退税进度。 5. **报表...
4. **新闻的上传下载**:系统允许用户下载新闻附带的文件,如PDF文档、图片等。这需要考虑文件存储的策略,如本地存储或云存储,并确保文件的安全性和可访问性。 5. **新闻评论功能**:用户可以对新闻进行评论,...
24:附件上传按后缀,时间分别建立目录 25:全面支持无大类、无小类文章,各级页面均支持模板 26:最新添加单位稿件统计(旧版本升级请后台运行Tools_UpdateDB-11-6.asp升级数据库) 27:其他错误修正 29:首页...
无需任何设置,上传到支持asp.net的主机空间即可使用。 系统内置多套网络商城专业模板,适合开网上书店、花店、数码产品店、化妆品、手机店。网奇官方网站(http://www.wangqi.com)更不定时的推出新的精美模板。 ...
1. **邮件管理**:系统内置邮件客户端,允许用户收发电子邮件,支持附件上传,方便文件传输和团队协作。 2. **账户管理**:员工可以注册和管理自己的账户,包括修改密码、个人信息更新等功能,同时管理员有权进行...
### ASP源码ASP+ACCESS期刊稿件处理系统知识点详解 #### 一、ASP技术概述 - **定义**:ASP(Active Server Pages)是一种服务器端脚本环境,可用于创建和运行动态交互式网页应用程序。它使用HTML页面中的脚本命令...
- **文档共享**: 提供文档上传、下载等功能。 **4.5 辅助办公** - **会议室预订**: 管理会议室资源。 - **车辆管理**: 管理企业车辆使用情况。 **4.6 网络通讯** - **即时通讯**: 内置IM工具,支持实时沟通。 - ...
10. **文件操作**:如“PS资源.jpg”等文件可能是系统的附件功能,允许用户上传和下载文件,如发票、合同等。 11. **集成其他工具**:“会声会影礼包.jpg”和“Office礼包.png”可能表示系统集成了视频编辑或办公...
此外,邮件系统通常还支持附件上传、邮件归档和搜索功能。 公司日程管理系统帮助员工规划和管理个人及团队的日程,可以创建会议、预约、提醒等,有效协调各方时间,避免冲突。 源码和数据库的提供意味着开发者或IT...
在报道管理系统中,SQLServer用于存储各类报道信息,如标题、内容、作者、发布时间等,通过JDBC(Java Database Connectivity)接口与SSH框架进行交互。 5. **JSP(JavaServer Pages)**:JSP是Java的一种动态网页...
新闻管理系统可能会包含图片、文档等附件,这就需要实现文件上传和下载功能。在JSP中,可以使用Servlet处理文件上传,将文件保存到服务器指定目录,同时在JSP页面上提供下载链接。 6. 用户认证与授权: 对于一个...