网站的图片一般是存在服务器还是数据库

网站的图片一般是存在服务器还是数据库,第1张

服务器,尤其是目前越来越大
分辨率越来越高
如果以二进制存在服务器,那服务器读写性能以及开销就太大了
一般都是存在服务器,或者可以考虑利用nginx搭建一套专门的服务器
希望能帮助到你

Neo4j就是一个数据库(可以理解成一个类似HBASE的东西,不过Neo4j是几乎是单机数据库,于HBASE不同,HBASE的数据时存储在

HDFS上,由HDFS进行维护,HDFS将数据存储在exfat等单机文件系统上。Neo4j直接将数据格式化到单机文件系统)

每一个服务器保存完整的图数据。

GraphX是一个计算引擎(类似于maprece的东西),它的数据是从SHARK中使用SQL读取数据,或者RDD运算符从文件中读取,然后直接进行计算

另外数据库和计算引擎都可以进行计算任务,不过数据库的接口比较弱,只支持简单的查询

计算引擎提供了强大的计算接口,方便了编程,可以很容易的实现pagerank等图算法

GraphX做数据挖掘应该更方便,有通用的编程几口

Neo4j就需要自己写代码了编程比较麻烦,不过性能上或许有优势

本文实例讲述了PHP实现上传到数据库并显示输出的方法。分享给大家供大家参考,具体如下:
1
创建数据表
CREATE
TABLE
ccs_image
(
id
int(4)
unsigned
NOT
NULL
auto_increment,
description
varchar(250)
default
NULL,
bin_data
longblob,
filename
varchar(50)
default
NULL,
filesize
varchar(50)
default
NULL,
filetype
varchar(50)
default
NULL,
PRIMARY
KEY
(id)
)engine=myisam
DEFAULT
charset=utf8
2
用于上传到服务器的页面
upimagehtml
<!doctype
html>
<html
lang="en">
<head>
<meta
charset="UTF-8">
<meta
name="viewport"
content="width=device-width,
user-scalable=no,
initial-scale=10,
maximum-scale=10,
minimum-scale=10">
<meta
>网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标群体,设定网站整体架构,规划、设计网站栏目及其内容,制定网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。其内容有程序架构,呈现架构,和信息架构三种表现。而步骤主要分为硬架构和软架构两步程序。网络架构是现代网络学习和发展的一个必须的基础技术。
中文名
网站架构
一般认为
根据客户需求分析的结果
制定
网站开发流程及顺序
内容
程序架构,呈现架构
快速
导航
软架构八个方案
硬架构
机房的选择
在选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城市,机房价格越贵,从成本的角度看可以在一些中小城市托管服务器,比如说北京的公司可以考虑把服务器托管在天津,廊坊等地,不是特别远,但是价格会便宜很多。
带宽的大小
通常老板花钱请我们架构网站的时候,会给我们提出一些目标,诸如网站每天要能承受100万PV的访问量等等。这时我们要预算一下大概需要多大的带宽,计算带宽大小主要涉及两个指标(峰值流量和页面大小),我们不妨在计算前先做出必要的假设:
第一:假设峰值流量是平均流量的5倍。
第二:假设每次访问平均的页面大小是100K字节左右。
如果100万PV的访问量在一天内平均分布的话,折合到每秒大约12次访问,如果按平均每次访问页面的大小是100K字节左右计算的话,这12次访问总计大约就是1200K字节,字节的单位是Byte,而带宽的单位是bit,它们之间的关系是1Byte = 8bit,所以1200K Byte大致就相当于9600K bit,也就是9Mbps的样子,实际情况中,我们的网站必须能在峰值流量时保持正常访问,所以按照假设的峰值流量算,真实带宽的需求应该在45Mbps 左右。
当然,这个结论是建立在前面提到的两点假设的基础上,如果你的实际情况和这两点假设有出入,那么结果也会有差别。
服务器的划分
先看我们都需要哪些服务器:服务器,页面服务器,数据库服务器,应用服务器,日志服务器等等。
对于访问量大点的网站而言,分离单独的服务器和页面服务器相当必要,我们可以用lig>

网站架构按照制作步骤分为硬架构和软架构。

一、硬架构

1、机房:在选择机房的时候,根据网站用户的地域分布,可以选择网通、电信等单机房或双机房。

2、带宽:预估网站每天的访问量,根据访问量选择合适的带宽,计算带宽大小主要涉及峰值流量和页面大小两个指标。

3、服务器:选择需要的服务器,如服务器,页面服务器,数据库服务器,应用服务器,日志服务器,对于访问量大点的网站而言,分离单独的服务器和页面服务器相当必要。

二、软架构

1、网站的框架:现在的PHP框架有很多选择,比如:CakePHP,Symfony,Zend Framework,根据创作团队对各个框架熟悉程度选择。

2、逻辑的分层

1)表现层:所有和表现相关的逻辑都应该被纳入表现层的范畴。

2)应用层:主要作用是定义用户可以做什么,并把 *** 作结果反馈给表现层。

3)领域层:包含领域逻辑的层,就是告诉用户具体的 *** 作流程的。

4)持久层:即数据库,保存领域模型保存到数据库,包含网站的架构和逻辑关系等。

扩展资料

网站的分类

1、根据网站所用编程语言分类:例如asp网站、php网站、jsp网站、Asp net网站等;

2、根据网站的用途分类:例如门户网站(综合网站)、行业网站、娱乐网站等;

3、根据网站的功能分类:例如单一网站(企业网站)、多功能网站(网络商城)等等。

4、根据网站的持有者分类:例如个人网站、商业网站、政府网站、教育网站等。

5、根据网站的商业目的分类:营利型网站(行业网站、论坛)、非营利性型网站(企业网站、政府网站、教育网站)。

参考资料来源:百度百科—网站架构

参考资料来源:百度百科—网站

大概流程:
1上传插件的选择:此篇博文选择的是jQuery的zyupload文件上传插件;
2上传请求发起后,java代码的处理:你是要将上传的只保存在服务器还是只保存在数据库还是说两者都采取。上传到服务器很简单,保存到数据库也很简单,但是此处需要考虑业务,保存在数据库时采用哪种保存方式(本博文业务来自于项目,因为数量巨多,故在数据库是通过保存的路径实现的,并非二进制流);
3保存在数据库后,在前段页面的回显功能。

通常对用户上传的需要保存到数据库中。解决方法一般有两种:一种是将保存的路径存储到数据库;另一种是将以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存的上传路径到数据库:
string uppath="";//用于保存上传路径
//获取上传的文件名
string fileFullname = thisFileUpload1FileName;
//获取上传的时间,以时间作为的名字可以防止重名
string dataName = DateTimeNowToString("MMddhhmmss");
//获取的文件名(不含扩展名)
string fileName = fileFullnameSubstring(fileFullnameLastIndexOf("\\") + 1);
//获取扩展名
string type = fileFullnameSubstring(fileFullnameLastIndexOf("") + 1);
//判断是否为要求的格式
if (type == "bmp" || type == "jpg" || type == "jpeg" || type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type == "GIF")
{
//将上传到指定路径的文件夹
thisFileUpload1SaveAs(ServerMapPath("~/upload") + "\\" + dataName + "" + type);
//将路径保存到变量,将该变量的值保存到数据库相应字段即可
uppath = "~/upload/" + dataName + "" + type;
}
二、将以二进制数据流直接保存到数据库:
引用如下命名空间:
using SystemDrawing;
using SystemIO;
using SystemDataSqlClient;
设计数据库时,表中相应的字段类型为iamge
保存:
//路径
string strPath = thisFileUpload1PostedFileFileNameToString ();
//读取
FileStream fs = new SystemIOFileStream(strPath, FileModeOpen, FileAccessRead);
BinaryReader br = new BinaryReader(fs);
byte[] photo = brReadBytes((int)fsLength);
brClose();
fsClose();
//存入
SqlConnection myConn = new SqlConnection("Data Source=;Initial Catalog=stumanage;User ID=sa;Password=123");
string strComm = " INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )";// *** 作数据库语句根据需要修改
SqlCommand myComm = new SqlCommand(strComm, myConn);
myCommParametersAdd("@photoBinary", SqlDbTypeBinary, photoLength);
myCommParameters["@photoBinary"]Value = photo;
myConnOpen();
if (myCommExecuteNonQuery() > 0)
{
thisLabel1Text = "ok";
}
myConnClose();
读取:
连接数据库字符串省略
myconOpen();
SqlCommand command = new
SqlCommand("select stuimage from stuInfo where stuid=107", mycon);//查询语句根据需要修改
byte[] image = (byte[])commandExecuteScalar ();
//指定从数据库读取出来的的保存路径及名字
string strPath = "~/Upload/zhangsanJPG";
string strPhotoPath = ServerMapPath(strPath);
//按上面的路径与名字保存文件
BinaryWriter bw = new BinaryWriter(FileOpen(strPhotoPath,FileModeOpenOrCreate));
bwWrite(image);
bwClose();
//显示
thisImage1ImageUrl = strPath;
采用俩种方式可以根据实际需求灵活选择。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12749449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存