`
wsql
  • 浏览: 11777502 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

上传图片到任意指定地址并显示(其地址不在虚拟地址内)

 
阅读更多

由于上传的图片由其他组件上传,且不在虚拟地址对应的物理地址内,这样给图片的显示带来了问题,因为图片的显示控件不能为其指定绝对地址(出于安全考虑),所有即使为其指定了绝对地址也无法显示,所以下面使用一般处理程序解决该问题:

创建一个Image.ashx文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using XianXian.Model;
using System.IO;

namespace XianXian.Web.Manager
{
/// <summary>
/// Image 的摘要说明
/// </summary>
public class Image : IHttpHandler
{

//配置文件中的目录地址
private string fileServerPath = System.Configuration.ConfigurationManager.AppSettings["BossYouFile"].ToString();
public void ProcessRequest(HttpContext context)
{
if (context.Request["file"] != null)
{
string file = context.Request["file"].ToString();
string filepath = fileServerPath +"\\"+ file.Replace('/','\\');//通过拼接得到绝对地址
if (File.Exists(filepath))
{
byte[] data = File.ReadAllBytes(filepath);
context.Response.OutputStream.Write(data, 0, data.Length);//直接输出图片数据
}
}
}

public bool IsReusable
{
get
{
return false;
}
}
}
}

asp.net代码如下:

....

<div style="float: right; width: 220px; height: 182px; text-align: right;">
<div style="float: none; width: 170px; height: 148px; border: 1px gray; padding-right: 50px;">
<asp:Image ID="imgUserGravatar" runat="server" Width="140px" Visible="true" Height="148px"
ImageUrl="../Manager/Image/defaultpicture.jpg" CssClass="userpicture" /><!--这里是一个默认图片,它会被实际显示的图片替换掉-->

</div>
<div style="text-align: left; height: 17px; margin-top: 10px; margin-left: 8px; position: relative;">
<asp:FileUpload ID="FileUploadIMG" runat="server" CssClass="cssfileupload" Width="180px"
size="15px" Height="17px" />

</div>
</div>

....

asp.net后台代码如下:

....

//这里使用了文件的异步上传:

UploadFileClass ufc = new UploadFileClass(userInfo, imgUserGravatar, userGravatar, data, data.LongLength);

....

//UploadFileClass 该类的定义如下(嵌套类):

//首先定义代理

private delegate int AsyncUploadFile(string path, byte[] data, long sendedsize, long length);

class UploadFileClass
{
private EnterpiseUserInfo fileuserInfo;
private Image fileimage;
private string filepath;
private byte[] filedata;
private long filelength;
public UploadFileClass(EnterpiseUserInfo userinfo, Image image, string path, byte[] data, long length)
{
fileuserInfo = userinfo;
fileimage = image;
filepath = path;
filedata = data;
filelength = length;
FileBLL fileBll = new FileBLL();
AsyncUploadFile auf = new AsyncUploadFile(fileBll.Upload);
auf.BeginInvoke(filepath, filedata, 0, filelength, UploadFileCallBack, auf);
}

/// <summary>
/// 文件上传
/// </summary>
/// <param name="ar"></param>
private void UploadFileCallBack(IAsyncResult ar)
{
AsyncUploadFile dlgt = ar.AsyncState as AsyncUploadFile;
try
{
int result = dlgt.EndInvoke(ar);
if (result >= 0)
{
fileuserInfo.UserGravatar = filepath;

fileimage.ImageUrl = "Image.ashx?file=" + filepath;//这里是本篇文章的核心
}
else
fileuserInfo.UserGravatar = "";
}
catch
{
}
}
}

分享到:
评论

相关推荐

    精美网站风格模板V65

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    好用的iwms网站管理系统

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    网奇CMS网站管理系统

    14.可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 15.自动取新闻内第一张适合的本地图片生成缩略图 16.上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    网奇iwms网站管理系统免费下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ·...

    网站管理系统源码下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    网站管理程序iwms免费下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ·...

    优秀iwms网站管理系统【下载】

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    免费建站系统,简单易用

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    一般网站系统源码下载

    主要功能: ·首页、 分类、新闻、专题可生成静态页面 ...·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图

    ASP经典下载系统Downplus v2.2 MSSQL商业版.zip

    下载地址可随机排序,可在显示文件真实地址的模式下统计下载次数. 软件下载限制功能:可为软件设置密码.为每个软件、每个下载地址设置会员等级限制.所有限制可选开启或关闭. 软件/文章评分功能. IP限制功能:...

    网站管理系统整站下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    网奇CMS网站管理系统 v5.7.rar

    16.上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) 17.用户整合接口,可实现跨站会员注册、修改、登陆、退出、删除、取资料 18.按web标准规范代码,html编辑器支持Xhtml 19.网站调查功能 20.广告管理...

    网站管理系统IWMS 整站下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    AlkkCMS 免费版 V1.0.rar

    ▪ 可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ▪ 广告管理系统,广告分组按权限随机显示 ▪ 站内关键字,可将新闻内的关键字替换为链接 ▪ 多级分类,可以...

    IIS6.0 IIS,互联网信息服务

    再打开IE,在地址栏中输入“localhost”后回车,验证一下IIS是否正常运行。 经过验证,WWW、FTP等几个服务经过这样的修改都可以在Windows XP家庭版上正常运行。不过经过这样处理安装的IIS在运行上可能存在某种未知的...

    iwms网站管理系统免费风格模板

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    IWMS网站管理系统下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    优化后的建站系统【整站下载】

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    网站管理系统IWMS4.6_D2下载

    ·可设置分类订阅rss,把rss内容作为一个分类显示, 从而可以在网站显示任意提供rss的网站的最新内容 ·自动取新闻内第一张适合的本地图片生成缩略图 ·上传jpg图片时可提取元数据(Exif,数据相机照片的拍摄参数) ...

    WeLive免费在线客服系统 v3.2.0 商业版 破解版 特别版V1.0

    在其后面添加并变为如下(注意语句结尾的标点符号): [removed][removed] [removed][removed]'; 如果希望仅在weenCompany系统的某个模板样式中显示客服小面板, 可打开这个模板样式文件: 在此样式文件的&lt;/...

Global site tag (gtag.js) - Google Analytics