GVKun编程网logo

PHP-将缩略图与mysql数据库中的图像相关联的最佳方法是什么?(php 缩略图)

21

对于PHP-将缩略图与mysql数据库中的图像相关联的最佳方法是什么?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解php缩略图,并且为您提供关于image–创建网页缩略图的最佳方法是什么

对于PHP-将缩略图与mysql数据库中的图像相关联的最佳方法是什么?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解php 缩略图,并且为您提供关于image – 创建网页缩略图的最佳方法是什么?、php – 使用MySQL,不选择存在于不同表中的用户的最佳方法是什么?、php – 在MySQL中使用/存储加密密钥的最佳方法是什么?、php – 在mysql中存储二进制数据(图像,pdf,mp3,视频等)的最佳方法是什么?为什么?的宝贵知识。

本文目录一览:

PHP-将缩略图与mysql数据库中的图像相关联的最佳方法是什么?(php 缩略图)

PHP-将缩略图与mysql数据库中的图像相关联的最佳方法是什么?(php 缩略图)

我正在为网站建立数据库,该网站将成为产品目录.
我的图像表有问题.我有一个PHP脚本,可以用三种尺寸来调整图像的大小,用后缀重命名它们,将它们写入目录,并在图像表中添加对它们的引用.

由于我计划为每个产品使用多个图像,因此我很难弄清楚缩略图(小图像)将如何与大中图像相关联.我希望能够通过PHP脚本将所有缩略图添加到页面,并带有指向中型或大型图像的链接.

这是我到目前为止的一切

image-id  product-id  filename              size    caption  width  height  alt
13        1           Passpro150_large.jpg  large   NULL     632    569     NULL
14        1           Passpro150_medium.jpg medium  NULL     250    225     NULL
15        1           Passpro150_small.jpg  small   NULL     115    103     NULL

有标准的方法吗?我是否应该制作三个表,每个表一个,并将它们与一个主外键关联?我还认为我可以通过字符串操作来实现,用_large替换_small,因为所有上传的图像都将具有相同的后缀.有什么建议么?

解决方法:

约瑟夫所说的是一种解决方案.
或者,您可以创建多个缩略图大小不同的文件夹,例如thumb_small,thumb_medium,然后以相同的名称将图像保存在其中.

您只需将文件名保留在数据库中.当需要显示图像时,可以将URL调整到特定的文件夹.

image – 创建网页缩略图的最佳方法是什么?

image – 创建网页缩略图的最佳方法是什么?

是否有一些合理的跨平台方式来创建给定URL的缩略图?我知道有缩略图Web服务可以做到这一点,但我想要一个可以在本地执行此操作的软件或库.我想在 Linux中我总是可以使用无头X服务器生成一个浏览器窗口,但是Windows或OS X呢?

解决方法

你可以使用Firefox或XULRunner和一些相当简单的XUL来创建缩略图作为PNG dataURL(然后你可以根据需要写入文件). Robert O’Callahan在这里有一些很好的信息:

http://weblogs.mozillazine.org/roc/archives/2005/05/rendering_web_p.html

php – 使用MySQL,不选择存在于不同表中的用户的最佳方法是什么?

php – 使用MySQL,不选择存在于不同表中的用户的最佳方法是什么?

我的问题如下:
我有两张桌子;个人和团队,我想选择所有person_id = 2的人,这些人存在于团队中而不是团队中.

表团队为团队负责人存储哈希值,团队负责人一次只能领导一个团队.在创建团队时,我只想向管理员展示当前没有领导团队的人员,基本上排除所有已经是任何特定团队领导者的人.

我的结构如下:

MysqL> desc persons;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| firstname   | varchar(9)  | YES  |     | NULL    |       |
| lastname    | varchar(10) | YES  |     | NULL    |       |
| role_id     | int(2)      | YES  |     | NULL    |       |
| hash        | varchar(32) | NO   | UNI | NULL    |       |
+-------------+-------------+------+-----+---------+-------+

MysqL> desc teams;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20) | YES  |     | NULL    |                |
| leader | varchar(32) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

我目前的sql如下:

SELECT CONCAT(  `persons`.`firstname` ," ",  `persons`.`lastname` ) AS  `manager`,
`hash` FROM  `persons`
WHERE  `persons`.`role_id` =2 AND  `persons`.`hash` != 
(SELECT  `leader` FROM  `teams` );

后面的sql Query在表团队只有1条记录的情况下工作,但是一旦我添加另一条记录,MysqL会对子查询产生两条记录的投诉.

在WHERE子句中,我还尝试了以下方法,而不是子查询:

 WHERE `persons`.`role_id` = 2 AND `persons`.`hash` != `teams`.`leader`

但后来它抱怨表格团队中没有列专栏

我也在考虑使用某种逆LEFT JOIN,但我还没有想出最佳解决方案.

任何帮助是极大的赞赏!
谢谢

P.S.:如果你想要一个类似于我的场景,这是sql语句:

DROP TABLE IF EXISTS `teams`;
CREATE TABLE IF NOT EXISTS `teams` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(20) DEFAULT NULL,
   `leader` varchar(32) NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

 INSERT INTO `teams` (`id`, `name`, `leader`) VALUES
 (1, 'Team 1', '406a3f5892e0fcb22bfc81ae023ce252'),
 (2, 'Team 2', 'd0ca479152996c8cabd89151fe844e63');


DROP TABLE IF EXISTS `persons`;
CREATE TABLE IF NOT EXISTS `persons` (
  `firstname` varchar(9) DEFAULT NULL,
  `lastname` varchar(10) DEFAULT NULL,
  `role_id` int(2) DEFAULT NULL,
  `hash` varchar(32) NOT NULL,
  PRIMARY KEY `hash` (`hash`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `persons` (`firstname`, `lastname`, `role_id`,`hash`) VALUES
('John', 'Doe', 2, '406a3f5892e0fcb22bfc81ae023ce252'),
('Jane', 'Doe', 2, 'd0ca479152996c8cabd89151fe844e63'),
('List', 'Me', 2, 'fbde2c4eeee7f455b655fe4805cfe66a'),
('List', 'Me Too', 2, '6dee2c4efae7f452b655abb805cfe66a');

解决方法:

您不需要子查询来执行此操作. LEFT JOIN就足够了:

SELECT
   CONCAT (p.firstname, " ", p.lastname) AS manager
   , p.hash
FROM  persons p
   LEFT JOIN teams t ON p.hash = t.leader
WHERE
   p.role_id = 2
   AND t.id IS NULL -- the trick

php – 在MySQL中使用/存储加密密钥的最佳方法是什么?

php – 在MySQL中使用/存储加密密钥的最佳方法是什么?

我打算使用 MySQL,它内置加密功能来加密/解密某些表中的某些列.我所关心的是我需要将密钥存储在某个地方.我可以将密钥存储在文件中,并控制该文件的权限以及访问该文件的应用程序的权限,但这是否足够?我也可以创建一个Web服务来获取关键或某些东西.

我在一个小商店,我将是唯一一个(可能是另一个人),可以访问应用程序所在的机器.编辑:我应该补充说,面向Web应用程序的Web部分将需要解密数据,除非我添加了一个层次.

我看起来很恶心,但没有人似乎有一个防弹的答案.

这些问题是您必须解决的问题之一吗?鉴于我使用MysqL和PHP(可能是Python)有没有更好的方法来处理?

我不知道如果使用MysqL构建加密将是您的问题的最佳解决方案.

PHP的M_CRYPT软件包被认为是非常好的,它可以灵活地选择最适合您需求的算法.

将密钥存储在其他服务器上有一个很大的优点:密钥与加密数据不在同一台机器上).所以只要攻击者对受攻击的机器没有足够的控制权,就无法得到钥匙.
如果攻击者对数据进行完全控制,那么他们很有可能会查询该Web服务的密钥.

然而,将密钥从一台机器传输到另一台机器打开了需要保护的整个新区域.可能涉及更多密钥和更多加密层,从而增加错误的机会.

*)另一个选项是在网络服务器启动时输入密码,并将其保存在内存中.

可能的解决方案
如果看到使用的解决方案使用以下方法来加密具有Web访问权限的用户的文件(我不确定您的环境,但可能会有所帮助):

>在用户创建时,为新用户分配一个长随机密钥.
>该随机密钥存储在用户记录中的加密列中.
(只有这个列被加密才能影响其他记录的性能!)
>随机密钥列的加密使用1个主密码,存储在文件或内存中.
(更好的选择是在盯着您的网络服务器时输入密码,并将其存储在内存中.)
(另一种方法是让用户输入密码并将其用于加密/解密随机密钥列,但是我不知道这是否会增加或减少安全性)
>需要加密的每个文档都使用该用户的随机密钥进行加密,然后存储在磁盘上.
>文件以文件系统中的最小权限存储.

这种方法的优点是:
随机密钥在数据库中加密.因此,您还可以与加密列结合使用数据库服务器的附加安全性.
2.文件存储有不同的密钥,如果攻击者持有密钥,则只有部分文档被泄露.

然而:如果攻击者掌握了主密码并对用户表进行了读取访问,则整个系统再次被破坏.

php – 在mysql中存储二进制数据(图像,pdf,mp3,视频等)的最佳方法是什么?为什么?

php – 在mysql中存储二进制数据(图像,pdf,mp3,视频等)的最佳方法是什么?为什么?

在 mysql中存储二进制数据(图像,pdf,mp3,视频等)的最佳方法是什么?为什么?我想知道的是你是如何做到的(作为开发人员)以及为什么?大网站怎么做呢?

先感谢您

总结

以上是小编为你收集整理的php – 在mysql中存储二进制数据(图像,pdf,mp3,视频等)的最佳方法是什么?为什么?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

关于PHP-将缩略图与mysql数据库中的图像相关联的最佳方法是什么?php 缩略图的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于image – 创建网页缩略图的最佳方法是什么?、php – 使用MySQL,不选择存在于不同表中的用户的最佳方法是什么?、php – 在MySQL中使用/存储加密密钥的最佳方法是什么?、php – 在mysql中存储二进制数据(图像,pdf,mp3,视频等)的最佳方法是什么?为什么?的相关知识,请在本站寻找。

本文标签: