mysql - 用php把本地要上傳的圖片經過剪下,存入資料庫

來源:互聯網
上載者:User
//擷取上傳臨時檔案路徑$uploadedfile = $_FILES['uploadfile']['tmp_name'];//擷取源檔案資源控制代碼。接收參數為圖片路徑,返回控制代碼$source = ImageCreateFromJPEG($uploadedfile);//擷取檔案的長寬list($width,$height) = GetImageSize($uploadedfile);if ($width > $height) {$xoord = ceil(($width-$height)/2);$width = $height;} else {$yoord = ceil(($height-$width)/2);$height = $width;}//建立一個圖片。接收參數分別為寬高,返回產生的資源控制代碼$thumb = ImageCreatetruecolor(100,100);//大圖//將源檔案剪下全部域並縮小放到靶心圖表片上。前兩個為資源控制代碼 ImageCopyResampled($thumb,$source,0,0,$xoord,$yoord,100,100,$width,$height);//圖片顯示ImageJPEG($thumb,'',100);

以上是圖片剪下的過程,假定我可以直接通過$db->select|update|insert來操作資料庫,請問我要如何完善上面的代碼,把要上傳的圖片經過剪下後轉換為2進位存入mysql資料庫呢

回複內容:

//擷取上傳臨時檔案路徑$uploadedfile = $_FILES['uploadfile']['tmp_name'];//擷取源檔案資源控制代碼。接收參數為圖片路徑,返回控制代碼$source = ImageCreateFromJPEG($uploadedfile);//擷取檔案的長寬list($width,$height) = GetImageSize($uploadedfile);if ($width > $height) {$xoord = ceil(($width-$height)/2);$width = $height;} else {$yoord = ceil(($height-$width)/2);$height = $width;}//建立一個圖片。接收參數分別為寬高,返回產生的資源控制代碼$thumb = ImageCreatetruecolor(100,100);//大圖//將源檔案剪下全部域並縮小放到靶心圖表片上。前兩個為資源控制代碼 ImageCopyResampled($thumb,$source,0,0,$xoord,$yoord,100,100,$width,$height);//圖片顯示ImageJPEG($thumb,'',100);

以上是圖片剪下的過程,假定我可以直接通過$db->select|update|insert來操作資料庫,請問我要如何完善上面的代碼,把要上傳的圖片經過剪下後轉換為2進位存入mysql資料庫呢

雖然已經有人建議你不要存在資料庫裡了,不過如果你堅持的話,我還是告訴你實現方法吧,首先你要存圖片的欄位必須是blob格式的,假設你已經做好資料庫方面的準備,在代碼上你需要做如下改動

// 從最後一行開始, 用一個臨時檔案做中轉$tmp = '/tmp/' . md5(uniqid());ImageJPEG($thumb, $tmp, 100);// 把資料轉換成一個字串$str = mysql_real_escape_string(file_get_contents($tmp));// 這隻是一個測試的sql,你可以自己修改$sql = sprintf("INSERT INTO test (`blob_column`) VALUES ('%s')", $str);mysql_query($sql);// 別忘了把臨時檔案刪掉unlink($tmp);
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.