`

网页显示附件链接提供下载,显示图片提供下载

    博客分类:
  • cms
 
阅读更多

网页显示附件链接提供下载,显示图片提供下载

package cn.com.leadfar.cms.backend.view;

import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.io.FileUtils;

import cn.com.leadfar.cms.backend.model.Attachment;

public class AttachmentFilter implements Filter {

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		//判断请求的URI,是否包含"upload_image"
		//如果包含"upload_image",则从d:/temp/upload目录中读取相应的文件,并且把文件的数据流写入response
		
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse resp = (HttpServletResponse)response;
		
		String requestURI = req.getRequestURI();
		
		//因为路径中可能包含有经过编码的信息,所以需要将它转换为正确的字符串
		requestURI = URLDecoder.decode(requestURI, request.getCharacterEncoding());
		
		//indexOf返回值:
		//-1表示不包含这个字符串
		//某个值,就表示这个字符串起始字符的索引
		//requestURI的值,可能是:/cms/backend/upload_image/logo.gif
		int index = requestURI.indexOf("/upload_image/");
		if(index != -1){ 
			String imageName = requestURI.substring(index+"/upload_image/".length());
			byte[] image = FileUtils.readFileToByteArray(new File(Attachment.ATTACHMENT_DIR+imageName));
			response.setContentType("image/jpeg");
			response.getOutputStream().write(image);
			return;
		}
		
		index = requestURI.indexOf("/upload_file/");
		if(index != -1){
			String fileName = requestURI.substring(index+"/upload_file/".length());
			byte[] file = FileUtils.readFileToByteArray(new File(Attachment.ATTACHMENT_DIR+fileName));
			response.setContentType("application/x-msdownload");
			response.getOutputStream().write(file);
			return;
		}
		
		//让其他的请求通行!
		chain.doFilter(request, response);
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}

}

 

 

 

分享到:
评论

相关推荐

    网页下载图片,word显示下载窗口

    然而,有时候点击图片时,浏览器并不像预期那样显示图片,而是弹出一个下载窗口。这种现象可能是由多种原因引起的,以下是一些可能的原因和解决方案: 1. 图片链接设置: - **链接类型**:网页中的图片通常通过...

    java jsp+servlet实现文件下载(而不是在网页中显示出文件内容) 迅雷下载功能.zip

    本项目的核心是实现文件下载功能,而不是在浏览器中显示文件内容,尤其针对迅雷这样的第三方下载工具进行优化。下面我们将深入探讨如何使用Java的这些技术来实现这一目标。 首先,`jsp`是Java的一个视图技术,主要...

    网页附件图标

    在网页设计中,附件图标是不可或缺的元素,它们通常用于指示文档、文件或者链接指向的资源类型。"网页附件图标"这一主题涵盖了多种常见的文件格式,例如PDF、Word、PPT等,这些图标有助于用户快速识别和理解页面上...

    全站网页下载工具Webxz

    1. **深度抓取**:Webxz可以深入网站的各个层级,根据网页间的链接关系,自动跟踪并下载所有相关页面,确保下载的站点内容完整无遗漏。 2. **资源类型识别**:该工具能够智能识别并分别处理不同类型的文件,如HTML...

    PHP 下载图片

    虽然题目主要关注图片下载,但提到了`CSV导出.avi`,这可能意味着还涉及数据导出。在PHP中,可以使用`fputcsv()`函数将数据写入CSV文件,然后提供一个链接让用户下载。 7. **视频资源处理**: 题目中的`.avi`文件...

    java jsp页面处理 的图片上传下载的文件

    1. **URL设计**:为图片提供一个下载链接,这个链接对应于一个处理图片下载的Servlet,如`DownloadServlet`。 2. **文件读取**:Servlet根据URL参数找到要下载的图片文件,然后读取文件内容。 3. **设置响应头**:...

    点击链接保存图片等文件 v1.0

    【标题】"点击链接保存图片等...通过以上步骤,"点击链接保存图片等文件 v1.0"的功能得以实现,为用户提供了一种便捷的方式去获取和保存网络资源。在实际开发中,开发者需要根据具体需求和环境进行相应的调整和优化。

    webview附件

    通过以上步骤,我们可以实现在WebView中点击附件链接时自动触发文件下载的功能。这个"webview附件"示例不仅适用于纯文本内容的网页,还可以处理图片、PDF、文档等各种类型的附件。同时,为了兼容不同版本的Android...

    网页分析专用工具~!

    提供的选项开关有:显示图片,禁止脚本调试,启用 自动完成功能,允许脚本运行,允许Java Applet运行,允许ActiveX和插件运行。 赶快拥有WebPage Spy,发掘网页中无尽的宝藏! 产品特性 * 在您浏览网页的同时...

    ASP源码—点击链接保存图片等文件的实现代码(ASP) v1.0.zip

    综上所述,"ASP源码—点击链接保存图片等文件的实现代码"涉及到服务器端脚本、HTTP响应控制、文件系统操作、安全措施及用户体验优化等多个方面,这些是构建动态网站和提供文件下载服务的基础。通过熟练掌握这些知识...

    如何采集网页图片和文字

    在互联网世界中,网页内容通常由文字和图片共同构建,为用户提供丰富的信息体验。然而,当需要采集这些网页内容时,尤其是涉及到图片时,处理起来可能会变得复杂。传统的做法是分别保存文字和图片,然后处理链接,...

    PHP 图片下载程序

    6. **性能优化**:对于大量图片下载需求,可以考虑使用缓存机制,如文件缓存或内存缓存(如APC、Memcached),减少磁盘I/O操作。另外,还可以利用HTTP的Range请求头支持断点续传,提高大文件下载效率。 7. **安全性...

    jsp实现kindeditor在线编辑器可上传图片,附件源码献上

    KindEditor是一款开源的JavaScript富文本编辑器,它支持多种浏览器,提供了丰富的编辑功能,如文字格式化、图片上传、链接插入等。KindEditor的一大亮点是其易于集成和自定义,开发者可以根据需求调整编辑器的外观和...

    上传附件插件包

    1. **下载与解压**:首先,你需要从提供的链接或资源中下载这个压缩包`uploadifive-v1.2.2`,然后将其解压到你的项目目录中。解压后,你会得到包含JavaScript文件、CSS样式表、图片资源和其他可能的配置文件的文件夹...

    Scheme_demo

    可以使用`NSAttributedString.Key.attachment`来获取图片附件,然后在弹出的UIImageView中显示。 整个Scheme_demo项目可能还涉及到了其他知识点,如布局管理(AutoLayout或Size Classes)、网络请求(可能使用...

    一个包含BBS小型论坛网页

    这个网页集成了发帖、上传附件、浏览信息以及用户设置等多种功能,为用户提供了一个全面的在线交流环境。 首先,让我们深入了解一下BBS论坛的基本构成和功能: 1. **登录/注册系统**:用户需要注册账号才能参与...

    video downloadhelper1.5.0 下载视频是需要安装的app 平时下载超慢 特此奉献 1.5版本 目前最新版

    - **识别视频**:访问包含视频的网页,VDH会自动检测到并显示可用的下载选项。 - **选择并下载**:点击VDH图标,选择你想要的视频质量和格式,然后开始下载。 - **管理下载**:所有下载的视频可以在VDH的管理界面...

    附件源代码

    【标题】"附件源代码"涉及的是一个与编程相关的主题,尤其强调了JavaScript(简称js)这一编程语言。从描述中的“提问相关代码”我们可以推测,这是一个与问题解答或者在线帮助系统有关的项目,可能涉及到用户界面...

    mail顯示附件圖檔1

    在实现邮件显示附件图像的过程中,需要注意以下几点: 1. **编码处理**:确保图片文件正确编码,如果是内联图像,可能需要转换为Base64编码嵌入到HTML中。 2. **附件管理**:使用JavaMail的`Multipart`类来组合文本...

    上传下载以及分页技术

    在IT行业中,上传和下载功能是网页应用的基本组成部分,而分页技术则是处理大量数据时不可或缺的优化手段。本文将详细讲解这三个知识点,并以JSP(JavaServer Pages)技术为背景进行阐述。 首先,我们来看“上传”...

Global site tag (gtag.js) - Google Analytics