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

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?

白板的微信
浏览 377回答 5
5回答

开满天机

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系列函数进行压缩。然后再入库。出库的时候先解压

繁星点点滴滴

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

大话西游666

数据库只存图片路径

慕侠2389804

数据库保存图片二进制不可取,磁盘IO是比较慢的!一般的做法是把上传后的图片路径保存到数据库,考虑性能的话,可以购买cdn服务
打开App,查看更多内容
随时随地看视频慕课网APP