从ftp获取图片显示到jsp中

该博客主要讲述了如何从FTP服务器获取图片资源,并将这些图片成功地在JSP页面上进行展示的步骤和方法。
摘要由CSDN通过智能技术生成


首先获取图片

获取图片

package com.gmt.action;

import java.io.InputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.gmt.ftp.util.ApacheFtpUtil;
import com.gmt.redis.UploadRedisManager;
import com.opensymphony.xwork2.ActionSupport;

public class ShowAtlasAction extends ActionSupport{

	private static final long serialVersionUID = 1L;
	
	private long imageId ; //图片的id
	private long folderId;//文件夹名
	
	public long getImageId() {
		return imageId;
	}

	public void setImageId(long imageId) {
		this.imageId = imageId;
	}

	public long getFolderId() {
		return folderId;
	}

	public void setFolderId(long folderId) {
		this.folderId = folderId;
	}
	
	public String viewImages(){
        ApacheFtpUtil.downFiles(folderId,imageId);
        return null;
	}
	//这个方法只适合查询少量的图片,少量不能大于ftp服务器连接的的最大值
	public String test(){
        ServletOutputStream output = null;
        InputStream input = null;
        try {
        	HttpServletResponse response = ServletActionContext.getResponse();
            input = ApacheFtpUtil.downFile(folderId,imageId);
            output = response.getOutputStream();
            response.setContentType("image/jpeg");
            byte imageArray[] = new byte[4064];
			int len = 0;
			while((len = input.read(imageArray)) != -1){
				output.write(imageArray, 0, len);
			}
			output.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        	try {
        		if (input != null) {
        			input.close();
        		}
        		if (output != null) {
                	output.close();
        		}
        	} catch (Exception e) {
        		e.printStackTrace();
        	}
        }
        return null;
	}
	
	/**查询自制关卡*/
	public String showUpload(int id){
		ServletOutputStream output = null;
        try {
        	HttpServletResponse response = ServletActionContext.getResponse();
            output = response.getOutputStream();
            response.setContentType("image/jpeg");
            byte [] uploadImageArray = UploadRedisManager.getUpLoadIMG(id);
			output.write(uploadImageArray);
			output.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        	try {
        		if (output != null) {
                	output.close();
        		}
        	} catch (Exception e) {
        		e.printStackTrace();
        	}
        }
		return null;
	}
	
}

调用从FTP获取图片的流的方法

package com.gmt.ftp.util;

import java.io.*;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.gmt.init.Key;
/**
 * 此类提供对完调用的方法
 * 
 * */

public class ApacheFtpUtil {
	
	public static void main(String args[]) throws Exception{  
	    //testUpload();  
	      //testDownload();  
	    FtpUtil ftpUtil=new FtpUtil();  
	    ftpUtil.connectServer("192.168.1.108", 2121, "admin", "admin", null);  
	    //获得ftp服务器上目录名称为DF4下的所有文件名称  
//	    List<String> list=ftpUtil.getFileList("/400000/");  
//	    System.out.println("文件名称列表为:"+list);  
	    //上传本地D盘文件aaa.txt到服务器,服务器上名称为bbb.txt  
//	    boolean back = ftpUtil.uploadFile("d:" + File.separator + "zbs.txt", "/DF4/zbshh.txt");
//	    System.out.println("上传是否成功="+back);
	    //从服务器上下载文件bbb.txt到本地d盘名称为ccc.txt  
	    
	    
//	    
//	    boolean back = ftpUtil.download("eee.txt", "d:" + File.separator + "fff.txt");  
//	    System.out.println("上传是否成功="+back);
//	    
	    
	    
	    //删除ftp服务器上文件:bbb.txt  
	    //ftpUtil.deleteFile("bbb.txt");
	    
	    
//	    boolean back = ftpUtil.createDirect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值