基于PHP实现的WEB图片共享系统
摘 要
本系统主要从现代社会电脑化观念出发,通过对现有资料的分析、研究和整理,确定了在基于现存的WEB2.0模式下开发图片共享系统的可行性、紧迫性和必要性。在现阶段,国内基于WEB2.0的图片共享系统才刚起步,该市场还有很大的介入空间。其中,在国外,已经有了很成熟的图片共享平台。在WEB2.0时代,信息由以前的服务器发布变成了用户发布。也就是从以前的通过服务器搜集资源并且发布变成了通过用户提供资源,服务器进行整理,分类,发布的模式。而且这种模式对于一个网站的用户吸引度也远远高于传统模式。
本论文旨在详细说明如何在基于PHP以及Ajax框架的环境下,使用MVC的开发模式,完成一个具有完整功能的图片上传以及图片管理系统,并能够实现方便的添加,删除图片以及分类,后台主要实现对用户以及用户的图片进行管理;能实现相关个人的设置更改。并且系统中对于图片上传需要有比较直观的进度显示,图片的呈现使用比较友善的显示效果。
关键词:模型-视图-控制器;图片共享;Ajax
A Picture Share System Based on PHP
Abstract
This system mainly embarks from the modern society computerization. Based on existence information analysis, the research and the reorganization, we considered the pressing and the necessity of implementing order form developing picture share system base on WEB2.0.At the present stage, the domestic picture share system based on WEB2.0 is just underway. There is expansive to take part in this field, at the same time, mature picture share system aboard is already exist for a long time. In WEB2.0 period, the style of information publishing turned from server publishing to user publishing .In another word, it is changed from server publishing information to user providing information, and in this case, servers only need to coordinating, sorting and republishing. Furthermore, in this model, a website is much friendlier to user.
This thesis mainly describes how to developing fully functional pictures upload and picture management system. This system can easy to add, delete pictures and categories. In the backstage management, is mainly to implementing user and pictures management and user information changing. In this system, picture uploading is intuitionisticly showing, and the picture is need to be shown user friendly. [资料来源:http://Doc163.com]
Key words: MVC; Picture Share; Ajax [资料来源:http://Doc163.com]
3 总体设计
3.1 系统需求分析
图片共享,有三个方面需要考虑:一,用户应该以什么方式上传图片;二,用户可以上传的图片有哪些类型;三,应该以什么方式展示这些图片。另外,还应该实现对图片的简单整理以及统计。
因此,将上传图片的用户和浏览图片的用户作为系统服务的主要目标,对系统的功能提出了如下需求:
3.1.1 图片上传需要支持的方式
图片上传应该支持目前使用最多的页面表单方式。并且可以对其进行简单的处理。
除此之外,最好还要支持客户端方式。并且需要实现在用户不安装客户端的情况下,在WEB上实现批量上传图片。
3.1.2 用户上传图片需要支持的格式
一种是JPEG一种是PNG,现在大多数的数码相机都是使用JPEG格式保存图片,但是考虑到版权问题,也应提供PNG格式图片的支持。
3.1.3 分类
图片上传后,根据图片的标签以及图片所在任务自动将图片按照标签以及任务进行分类
3.1.4 图片管理
图片管理应该包括的基本内容:图片的删除,图片的添加,图片分类的添加以及删除,图片任务的添加以及删除,图片标签的添加以及删除。
同时,在图片管理中,用户能够以比较直观的方式查看自己上传的图片。
3.1.5 图片展现
[资料来源:Doc163.com]
应该能够很直观的展示给最终用户进行查看。
3.1.6 查询功能
用户需要了解自己的分类下的图片总量以及任务下的图片情况,又因为用户可能需要根据不同的情况下,对自己的分类,任务下的图片情况做统计,因此该系统还应具有分类,任务,标签的多条件组合查询功能。
3.1.7 由于该系统为多用户系统,系统后台还应该具有用户管理功能
用户管理包括的功能如下:用户的添加,删除,查询。以及对用户图片的查看,删除;对用户的分类的查看,删除;对用户标签的查看,删除。
3.2 总体结构
图片共享系统主要功能模块结构示意图如下:
图3-1 图片共享系统功能模块图
图片共享系统包括两大部分:用户界面和后台管理,其中用户界面为用户可视并且可使用的功能,后台管理为管理员所能使用的功能。
3.3 图片共享系统流程
图片共享系统流程设计思想如下:
1. 用户(这里主要指直接使用本系统的最终用户,不包括后台具有管理功能的用户)根据自己的图片格式,选择合适的图片上传到本系统的处理端。
2. 系统在接到用户上传的图片后,应根据系统当前所允许上传的图片的类型判断用户所上传的文件是否符合系统的要求,确定用户为上传图片所分配的标签,依据上传图片的设置对图片进行分类以及更改格式,此时的图片并非最后存储在系统中的图片,该图片在经过裁减以及根据系统设定更改后的格式进行存储。(这样做,是为了统一图片的格式,便于输出的处理以及图片入库时统一处理接口。)
3. 图片添加成功后,将上传的图片直接缓存到用户所在的文件夹下,按照上传日期排列,并且同时在数据库中保存图片的副本。
4. 图片在存储后,同时在前台显示已经上传的图片,并且将图片添加到所设定的标签下,并且按照任务对图片进行分批显示。
5. 用户在用户管理台里面可以对当前所有图片进行管理,用户删除图片时,可以按照单个图片,分类,标签,以及任务对图片进行删除操作。
6. 已经上传的图片,可以通过用户查看图片的连接直接提供给第三方用户进行查看。或者直接通过系统生成的连接发送给第三方用户进行查看。
7. 后台管理员可以通过系统提供的功能直接对管理用户进行添加以及更改。当需要具体赋予用户某个功能时,可以通过更改后台用户的细节设定来更改用户权限。
8. 管理员在需要删除某个用户的上传图片时,也可通过统一的图片管理接口对用户的图片,分类,标签以及任务进行删除。
管理后台子模块 — 系统管理
系统管理作为后台管理的一个重要部分,主要是用于设置当前系统的环境变量,以及一些说明性的信息。主要是由后台管理员对系统进行维护以及系统初始化的时候确定这些设置。在设置完成后,如果不是系统性能问题或者系统迁移,均可以保持设定的信息。
[版权所有:http://DOC163.com]
这个功能为系统提供了比较方便的扩展系统环境变量的方法。便于后期对系统的常规设定的修改以及方便系统的简单迁移,例如系统更换域名或者更改其他系统环境信息。
系统信息表中记录了系统的每个设定,对该模块进行修改最后将反馈到系统信息表中。
管理后台子模块 — 管理员管理
管理员管理,主要是用于设置能够对当前系统后台的功能进行操作的用户,以及设置这些用户可以使用后台哪些功能。该功能使得后台管理更为灵活,可以方便的进行权限托管。并且可以设置对某个功能专门进行操作的管理人员,简化了管理的复杂程度。
这个功能为系统提供了比较方便的扩展系统管理团队的方法。以便于在中后期对某个功能管理达到一定要求时可以对该功能赋予专用人员。
同时,该模块也提供了修改管理员信息的功能。可以方便的使该管理员在各个功能之间实现切换以及更改现有权限。
管理后台子模块 — 用户管理
用户管理用于管理当前系统中已经正常注册并且使用本系统的图片共享功能的用户。用户要注册该系统,除了可以在前台提供的注册页面注册外,也可以由具有用户管理权限的后台管理员在后台进行添加。除了用户能在自己的管理面板修改自己的信息之外,管理员可以通过该模块的用户编辑功能对用户信息进行修改。同时,可以通过搜索功能来定位特定用户名的用户,便于更快的找到需要操作的用户。 [资料来源:http://doc163.com]
管理后台子模块 — 图片管理
图片管理用于管理当前系统中已经正常注册并且使用本系统的图片共享功能的用户所上传的图片。
在该模块中,后台管理员可以根据单个用户对该用户所上传的图片进行管理。管理用户图片的界面和用户前台的管理界面相同。另外,和用户管理一样,后台管理员也可以通过搜索特定的用户名来快速定位到某个用户,并且对他所上传的图片进行管理。
在用户上传图片的过程中,有可能由于用户的误操作导致用户所上传的图片没有分类或者没有标签,这种情况下,管理员可以使用图片清理功能将这些图片清理掉。避免冗余以及错误数据导致的系统不稳定或者统计数据出错。
目 录
1 引言 1
2 系统概述 1
3 总体设计 2
3.1 系统需求分析 2
3.1.1 图片上传需要支持的方式 2
3.1.2 用户上传图片需要支持的格式 2
3.1.3 分类 2
3.1.4 图片管理 2
3.1.5 图片展现 3
3.1.6 查询功能 3
3.1.7 用户管理 3
3.2 总体结构 3
3.3 图片共享系统流程 3
3.4 图片共享系统模块功能介绍 5
3.4.1 用户界面子模块划分 5
3.4.2 管理后台子模块划分 7
4 方案选择 8
4.1 方案比较 8
4.1.1 系统模式比较 8
4.1.2 程序语言比较 8
4.2 方案选择 9
4.3 系统技术平台 9
4.4 开发环境搭建 9
5 实现技术与数据结构 12
5.1 系统架构设计 12
5.1.1 网络架构 12
5.1.2 系统逻辑服务器 12
5.2 系统处理流程 13
5.2.1 基于MVC的Smartemplate架构 13
5.2.2 SmartTemplate技术概述 14
5.2.3 SmartTemplate与html模版之间的关系 15
5.3 数据库设计 18
5.3.1 前台用户主要数据库表结构设计 21
5.3.2 管理后台数据库表结构设计 22
6 特殊问题解决办法 24
6.1 乱码问题 24
6.2 动态显示上传进度 24
6.3 图片随意批量上传问题 25
7 结果测试、性能分析 29
7.1 运行模块组合 29
7.2 系统登陆界面 29
7.3 模块应用举例 30
7.4 系统现存问题 33
7.4.1 批量上传连接的URL参数泄漏 33
7.4.2 批量上传页面源代码中回调脚本泄漏用户ID 33
7.4.3 无法正常返回 33
7.5 改进意见 34
结 论 34
参考文献 34
致 谢 35
声 明 36
[来源:http://www.doc163.com]