package com.sais.inkaNet.common.displayImage;
import com.opensymphony.xwork2.ActionSupport;
import com.sais.inkaNet.base.util.FtpImageDisplay;
import com.sais.inkaNet.base.util.PropertiesUtil;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import javax.servlet.http.HttpServletResponse;
public class DisplayImageAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private static final Logger log = Logger.getLogger(DisplayImageAction.class);
/**
* <p>属性描述: [要访问的图片url]</p>
*/
private String imageUrl;
/**
* <p>属性描述: [ftp ip地址]</p>
*/
private String ip = PropertiesUtil.getSetting("ftp.ip", "");
/**
* <p>属性描述: [ftp密码]</p>
*/
private String password = PropertiesUtil.getSetting("ftp.password", "");
//---------ftp---------
/**
* <p>属性描述: [用户名]</p>
*/
private String username = PropertiesUtil.getSetting("ftp.username", "");
/**
* <p>方法描述: [获得ftp中的图片用于页面显示]</p>
*
* @return 返回结果的说明
*
* @throws Exception 抛出异常的原因
*/
@Override
public String execute() throws Exception {
log.info("-->获得ftp图片,imageUrl:"+imageUrl);
/**
1.+ 表示空格(在 URL 中不能使用 空格) %20
2./ 分隔目录和子目录 %2F
3.? 分隔实际的 URL 和参数 %3F
4.% 指定特殊字符 %25
5.# 表示书签 %23
6.& URL 中指定的参数间的分隔符 %26
7.@ %40
*/
imageUrl = imageUrl.contains("\\") ? imageUrl.replace("\\", "%2F") : imageUrl;
imageUrl = imageUrl.contains("/") ? imageUrl.replace("/", "%2F") : imageUrl;
password = password.contains("@")?password.replace("@", "%40"):password;
HttpServletResponse response = ServletActionContext.getResponse();
FtpImageDisplay.getFtpImage(username, password, ip, imageUrl, response);
return NONE;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
}
package com.sais.inkaNet.base.util;
import org.apache.log4j.Logger;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.servlet.http.HttpServletResponse;
public class FtpImageDisplay {
/**
* <p>属性描述: [声明日志]</p>
*/
private static final Logger log = Logger.getLogger(FtpImageDisplay.class);
/**
* <p>方法描述: [从ftp中获得图片流返给页面]</p>
*
* @param username 用户名
* @param password 密码
* @param ftpUrl ftp的url
* @param fileUrl 文件路径
* @param response Response对象
*/
public static void getFtpImage(String username, String password, String ftpUrl, String fileUrl,
HttpServletResponse response) {
InputStream isr = null;
OutputStream out = null;
URL u = null;
try {
if ((fileUrl != null) && !"".equals(fileUrl)) {
response.setHeader("Content-Type", "image/png"); //response.setContentType("image/*"); // 设置返回的文件类型
out = response.getOutputStream();
StringBuffer sb = new StringBuffer("ftp://");
sb.append(username + ":");
sb.append(password + "@");
sb.append(ftpUrl + "/" + fileUrl);
u = new URL(sb.toString());
URLConnection urlconn = u.openConnection();
isr = urlconn.getInputStream();
int len = urlconn.getContentLength();
int i = len;
int c;
while (((c = isr.read()) != -1) && (--i > 0)) {
out.write(c);
}
log.info("获取ftp图片" + fileUrl);
} else {
log.warn("所要显示的图片路径为空");
}
} catch (Exception e) {
log.error(e.getMessage());
} finally {
try {
if (isr != null) {
isr.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
log.error(e.getMessage());
}
}
}
}
分享到:
相关推荐
4. **显示FTP上的图片**:要显示FTP服务器上的图片,有两种主要方法。第一种是通过网页浏览器访问FTP服务器上的图片链接,如果服务器支持HTTP访问。另一种是下载图片到本地,然后用图像查看器打开。在编程中,你可以...
在FTP客户端中,用户可以浏览本地文件系统,选择要上传的文件或文件夹,然后拖放到服务器的对应目录。FTP客户端会实时显示上传进度,并在完成时通知用户。快速的上传速度得益于FTP协议的设计,它支持断点续传,即使...
从标签中我们可以看到“ftp_上传图片”和“ftp传照片失败”,这可能意味着文档中包含了关于如何解决FTP图片上传过程中遇到的问题的指导,比如错误处理、调试方法等。 压缩包内的文件名提供了更多关于系统功能的线索...
在上面的例子中,我们设置了FTP服务器的URL、上传方法、最大文件大小限制和接受的文件类型。 5. **事件监听**:监听插件的事件,如`addedfile`(文件添加)、`uploadprogress`(上传进度)和`success`(上传成功)...
标题中的“漂亮实用界面迷你FtpServer源代码”揭示了这是一个设计精良、用户界面友好的小型FTP服务器软件,其核心特点在于其简洁且高效的界面。FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准...
7. 测试设置:上传一张图片到你的 Destoon7 网站,检查图片是否正确地存储在远程 FTP 服务器上,并能正常显示在网站上。 通过以上步骤,你可以成功配置 Destoon7 使用远程 FTP 图片服务器,实现图片资源的高效管理...
4. **二进制上传**:描述中提到使用“二进制上传”,这是因为有些FTP客户端默认使用文本模式上传文件,可能会改变文件内容,导致图片无法显示。切换到二进制模式上传可以解决这个问题。 5. **服务器配置**:检查...
【IIS 6.0 架设 FTP 服务器教程】 IIS(Internet Information Services)是微软提供的一个...在实际操作过程中,如果遇到图片显示不清晰或步骤不明了的情况,可以通过放大图片或者在线搜索相关资源来获取更多信息。
1.添加引用 ...2.使用方法 代码如下: OpenFileDialog openFile=new OpenFileDialog(); open..Filter = “PDF文件|*.pdf”; openFile.ShowDialog(); axAcroPDF1.src = openFile.FileName;...//axAcroPDF1.LoadFile(...
通过这个例子,你可以直观地看到用户如何在编辑器中选择图片、上传并显示图片,从而更好地理解整个流程。 总结起来,这个教程将指导你如何配置CKEditor3.x以支持图片上传,包括集成CKEditor、配置图片上传的URL、...
标题中的“下载web页面并显示html内容需要Internet Transfer Control”是指在编程中,尤其是使用Visual Basic等编程语言时,为了实现从互联网上下载网页内容并在应用程序中显示HTML,需要使用特定的控件——Internet...
在ASP.NET Web应用中,这些图片可以被添加到页面上,通过CSS和JavaScript控制其显示和交互效果,提升用户体验。 5. 源码分析: "asp.net FTP????????(???+??)\asp.net FTP????????(???+??)\MFFTP\MFFTP"目录结构下...
1. 响应式设计:确保登录页面在不同尺寸的手机屏幕上都能正常显示,这通常通过媒体查询(`@media`)来实现。 2. 排版布局:设置元素的宽度、高度、边距和填充,以适应手机屏幕的有限空间。 3. 颜色和背景:设定文字...
【Serv-U 安装及搭建FTP空间指南】 Serv-U 是一款功能齐全的FTP服务器软件,它允许用户构建多个以域为基础的FTP服务器...记得在实际操作过程中,根据自己的网络环境和安全策略调整相关设置,确保FTP服务的安全和稳定。
在PHPWEB网站开发中,遇到“网站标志或广告上传图片不显示”的问题,可能是由多种原因引起的。这里我们将深入探讨可能导致这一现象的常见原因及相应的解决策略。 首先,我们需要了解PHPWEB是一个基于PHP的开源网站...
在这个模板中,HTML代码将预先设计好的布局、文字、图片和交互元素组织起来,形成一个完整的页面。用户可以使用任何文本编辑器,如记事本,来打开和编辑这个源码文件。 页面模板通常包含头部、主体和底部等标准部分...
- **FTP上传**:直接在Dreamweaver中上传文件到服务器,简化发布流程。 - **文件组织**:通过内置的文件管理功能,可以轻松管理网站的文件结构,便于查找和更新内容。 6. **SEO优化**: - **元数据编辑**:编辑...
同时生成了缩略图和正常图片的base64值,缩略图用于页面进行显示,正常图片进行后续打开查看。测试了安卓和ios的微信端,一切正常。 另外由于缓存资源的原因没有考虑上传按钮的添加,上传图片即上传,ajax为异步...
在Android手机上,摄像头采集图片并上传到PC显示是一个常见的跨平台交互场景,涉及到移动设备与桌面设备的数据传输以及图像处理。在这个过程中,通常需要一个服务端来接收和存储图片,客户端(Android手机)则负责...
可酌情拖进右侧不同的小工具中,如下图右,让不同页面显示不同的侧边小工具。 另外,主题自带的小工具功能设置,并没有直接写到小工具中(代码过于复杂),需要到主题设置中进行相应设置。 ■ 添加公告 启用...