为了账号安全,请及时绑定邮箱和手机立即绑定

php 上載圖片壓縮再存入數據庫?

php 上載圖片壓縮再存入數據庫?

PHP
白板的微信 2019-03-05 10:34:25
if($_FILES['myFile_cover']['size']!='') { unlink('ourstory/'.$addfirstROW['id'].'.jpg'); unlink('ourstory/'.$addfirstROW['id'].'.JPG'); unlink('ourstory/'.$addfirstROW['id'].'.png'); unlink('ourstory/'.$addfirstROW['id'].'.PNG'); unlink('ourstory/'.$addfirstROW['id'].'.jpeg'); unlink('ourstory/'.$addfirstROW['id'].'.JPEG'); $target_dir = "ourstory/"; $target_file = $target_dir . basename($_FILES["myFile_cover"]["name"]); $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); $imagename = $addfirstROW['id'] . '.' . $imageFileType; $destination = $target_dir . $imagename; if(move_uploaded_file($_FILES["myFile_cover"]["tmp_name"], $destination)) { $SQL = mysql_query("UPDATE `x` SET `x` = '".$destination."' WHERE `id` = id "); } } 如何將這個程式加入直接壓縮圖片?再存入database?
查看完整描述

5 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

CREATE TABLE `upload` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `type` varchar(20) NOT NULL,
  `data` mediumblob NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
<?php
if ($_FILES["file"]["error"] > 0)
{
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
    $type = $_FILES["file"]["type"];
    $size = $_FILES['file']['size'];
    $tmp=$_FILES["file"]["tmp_name"];
    $fp = fopen($tmp,'rb');
    $data = bin2hex(fread($fp,$size));
    $dsn='mysql:host=localhost;dbname=test';
    echo '<pre>';
    try{
        $pdo = new PDO($dsn,'root','root');
        $pdo->exec("INSERT INTO `upload`(`type`,`data`) values ('$type',0x$data)");
        $id = $pdo->lastInsertId();
        echo 'upload success!<a href="view.php?id='.$id.'">View</a>';
        $pdo = null;
    }catch (PDOException $e){
        echo $e->getMessage();
    }
    echo '</pre>';
    fclose($fp);
}

压缩的话可以试用php的gzip系列函数进行压缩。然后再入库。出库的时候先解压

查看完整回答
反对 回复 2019-03-18
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

文件图片上传、
应该是文件上传后放置在某个文件夹,然后取得路径,再把路径写入数据库
直接存到数据库会有问题,图片的编码解码很耗资源。

查看完整回答
反对 回复 2019-03-18
?
大话西游666

TA贡献1817条经验 获得超14个赞

数据库只存图片路径

查看完整回答
反对 回复 2019-03-18
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

数据库保存图片二进制不可取,磁盘IO是比较慢的!一般的做法是把上传后的图片路径保存到数据库,考虑性能的话,可以购买cdn服务

查看完整回答
反对 回复 2019-03-18
  • 5 回答
  • 0 关注
  • 376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信