.Net简单图片系统-项目介绍

使用说明

1. 从github上获取代码,并部署到IIS中,应用程序池选择4.0.

2. 打开配置文件,在AppSettings中,设置SaveMode模式,如果选择的Distributed模式,需要安装FastDFS(FastDFS的安装参考下篇博客),并配置section信和fastdfs节点信息。这里选择Local模式.

2. 新建测试站点和测试页面。
3. 打开测试页面,修改如下,注意http://localhost:8090/ 是我部署的图片服务器地址,这里修改为你自己的图片服务器地址。

<link href="http://localhost:8090/Content/style.css" rel="stylesheet" />
<link href="http://localhost:8090/Content/webuploader.css" rel="stylesheet" />

<div id="uploader-demo">
    <!--用来存放item-->
    <div id="fileList" class="uploader-list"></div>
    <div id="filePicker">选择图片</div>
</div>

<input type="text" id="filename" style="width:600px" />
<script src="~/Content/jquery-1.10.1.min.js"></script>

<script src="http://localhost:8090/Content/webuploader.js"></script>
<script src="http://localhost:8090/Content/UploadInit.js"></script>
<script>
    jQuery(function () {
        UploadInit(‘fileList‘, ‘filePicker‘, ‘filename‘, ‘http://localhost:8090/‘);
    });
</script>  

4. 打开页面浏览,可以看到如图所以效果

5. 选择图片后自动上传,上传成功后便可在下方的文本框中看到图片绝对地址。

如果是本地模式,可以看到保存的路径中含有业务系统域名信息(这里是localhost, 如果业务域名为userservice.test.com则保存的地址为com\test\userservice), 还含有图片上传时间信息。 这里localhost:8090是图片服务器地址。

如果是基于FastDFS的,文件名是FastDFS控制生成的,192.168.1.104是fastdfs的tracker服务器地址。

完成以上步骤,你会发现我们新建的测试站点服务端没有做任何编码,仅仅是在页面端添加了一些外部样式和外部脚本就完成了整个的图片上传,返回的图片绝对地址,可以放在一个Hidden中,然后和其他信息一起提交Post到业务服务端。在查看的时候,浏览器再根据这个绝对地址去图片服务器上请求。

项目结构

项目结构非常简单,就是一个Web API站点,Content中是百度webuploader组件,Controllers中也只有一个Controller,用于接收图片,保存图片。

注意

1. 这里上传组件使用了百度的webuploader,样式和上传方式你可以参考官方API实现自定义。其他的还可以使用swfupload或者其他的组件,只要将图片提交地址改为图片服务器地址就可以了。

2. 因为使用的是CORS方式提交,部分浏览器会不兼容,所以需要有个适配机制,判断如果是IE6,就采用适合IE6的方式来提交,服务端要兼容Get提交, 这一块暂未实现。

3. CORS提交需要有一个认证的过程, 为了安全建议Access-Control-Allow-Origin不要设置为 *,而要设置为允许的站点域名。

4. 通过时间来命名图片名称有一定的安全隐患, 前台可以通过遍历来获取图片,如果对图片有安全要求,建议再加上4位-6位不等的随机数, 或者使用Guid方式。

时间: 2024-11-10 01:55:01

.Net简单图片系统-项目介绍的相关文章

.Net简单图片系统-简介

系统简介 .Net图片系统就是 一个独立的图片站点,上传的的图片将被保存到站点本地文件系统或者基于fastdfs的分布式文件系统中,图片在查看时会直接请求此站点或者fastdfs的tracker服务器(需要nginx支持). 发展 如今一些系统都会提供图片上传功能,但是不同的系统,保存图片的方式也不尽相同. 1. 保存到站点内:上传的图片被保存到了站点目录下面,这种方式适合单系统或者简单多系统,实现方式简单,但是如果访问量大,图片请求就会占用网络和磁盘资源而影响网站本身的性能. 1. 单系统  

.Net简单图片系统-本地存储和分布式存储

本地存储 所谓本地存储就是将上传图片保存到图片服务器的本地磁盘上. if (ConfigHelper.GetConfigString("SaveMode") == "Local") // 表示存储的是本地模式 { var hostname = request.QueryString["host"] ?? ""; if (hostname.StartsWith("www.")) { hostname = ho

Hadoop离线项目介绍

Hadoop离线项目介绍(不包括程序) 一:项目场景 1.需求分析 根据用户行为数据进行程序的处理,得到结果保存到关系型数据库中 需要收集用户(系统使用者)在不同客户端上产生的用户行为数据,最终保存到hdfs上 需要明确收集字段的相关信息,而且需要考虑到后期的新需求的提出 总:收集不同客户端的用户行为数据,通过mr.hive进行数据分析处理,将分析结果数据保存到关系型数据库中 2.场景一 二:核心关注点 1.核心关注点 购买率 购买的人数/总人数 购买的人数/查看该商品的总人数 复购率 n次购买

Apache顶级项目介绍4 - Hadoop

大象起舞,天下太平,极客们应该知道我们的重量级人物Hadoop登场了. 提到Hadoop, 正所谓饮水思源,我们不得不提及一下Hadoop之父,其对技术界的影响,在近10年可谓重大, 他就是Doug Cutting, 其传奇人生及其大作这里不赘述了,大家可以Google/Bing一下,之后或许我们会推出一些技术大牛的介绍以及好书推荐. 值得提及的是Hadoop之所以诞生于2005-2006之际,是Doug当时受到来自 Google Lab公开发布的几篇paper启发,包括Map/Reduce(2

教室实时信息查询系统 项目需求规格说明书

  教室实时信息查询系统 项目需求规格说明书 参与人:尹伟 吴文斌 东华理工大学 2015年10月31日 目    录 1.            文档说明... - 1 - 1.1编写目的... - 1 - 1.2背景... - 1 - 1.3适用范围... - 1 - 1.4预期读者与阅读建议... - 2 - 1.5参考文献... - 2 - 1.6术语与缩写解释... - 2 - 1.6.1术语... - 2 - 1.6.2缩写... - 3 - 2.       系统说明... - 4

Alfresco 4 项目介绍

body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } Alfresco 是一个开源的企业内容管理系统(ECM),功能相对于微软的SharePoint, Documentum与FileNet这样的产品. 支持多国语言, 支持LDAP, NTLM, Kerberos,活动目录,支持与Ms Sharepoint,Google Docs的集成, 跨平台,支持Windows/Unix系统.基于Java平台开发,通过开源的Tomc

OpenLayers项目分析——(一)项目介绍

OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的JavaScript包,目前的最高版本是2.7 V,通过BSD License 发行.它实现访问地理空间数据的方法都符合行业标准,比如OpenGIS的WMS和WFS规范, OpenLayers采用纯面向对象的JavaScript方式开发,同时借用了Prototype框架和Rico库的一些组件. 采用OpenLayers作为客户端不存在浏览器依赖性.由于OpenLayers采用JavaScript语言实现,而应用于We

几种P2P流媒体开源项目介绍

P2P流媒体开源项目介绍 1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据.节点离根节点越远,传输时延就越大,所以树的深度应该尽可能短,但节点有限的上行带宽限制了节点的宽度. 2. Tribler 2008年开始的项目,既能实现BT下载,还能播放视频的点播和直播.最大的特点是完全去中心化的设计,把传统的Tracker Server的工作分散了每个节点中去.开发语言是Pyth

6个P2P流媒体开源项目介绍

P2P流媒体开源项目介绍 1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据.节点离根节点越远,传输时延就越大,所以树的深度应该尽可能短,但节点有限的上行带宽限制了节点的宽度. 2. Tribler 2008年开始的项目,既能实现BT下载,还能播放视频的点播和直播.最大的特点是完全去中心化的设计,把传统的Tracker Server的工作分散了每个节点中去.开发语言是Pyth