鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)  HTML/ php 上載圖片壓縮再存入數(shù)據(jù)庫(kù)?

php 上載圖片壓縮再存入數(shù)據(jù)庫(kù)?

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 ");
        }
    }

如何將這個(gè)程式加入直接壓縮圖片?再存入database?

回答
編輯回答
薄荷綠

可以考慮JS先壓縮, 數(shù)據(jù)庫(kù)存訪問(wèn)路徑
http://www.jianshu.com/p/6a45...

2017年8月9日 19:03
編輯回答
愛(ài)是癌

數(shù)據(jù)庫(kù)保存圖片二進(jìn)制不可取,磁盤(pán)IO是比較慢的!一般的做法是把上傳后的圖片路徑保存到數(shù)據(jù)庫(kù),考慮性能的話,可以購(gòu)買(mǎi)cdn服務(wù)

2017年3月2日 16:02
編輯回答
誮惜顏

數(shù)據(jù)庫(kù)只存圖片路徑

2017年5月30日 21:09
編輯回答
陌璃

文件圖片上傳、
應(yīng)該是文件上傳后放置在某個(gè)文件夾,然后取得路徑,再把路徑寫(xiě)入數(shù)據(jù)庫(kù)
直接存到數(shù)據(jù)庫(kù)會(huì)有問(wèn)題,圖片的編碼解碼很耗資源。

2017年1月27日 04:21
編輯回答
厭惡我
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系列函數(shù)進(jìn)行壓縮。然后再入庫(kù)。出庫(kù)的時(shí)候先解壓

2018年9月8日 21:36