public function attach_image($input, $orig_filename = '') { global $C; if (isset($this->attached['image'])) { unset($this->attached['image']); } $types = array(IMAGETYPE_GIF => 'gif', IMAGETYPE_JPEG => 'jpg', IMAGETYPE_PNG => 'png'); list($w, $h, $tp) = @getimagesize($input); if ($w == 0 || $h == 0) { return FALSE; } if (!isset($types[$tp])) { return FALSE; } $fn = time() . rand(100000, 999999); $data = (object) array('in_tmpdir' => TRUE, 'title' => $orig_filename, 'file_original' => $fn . '_orig.' . $types[$tp], 'file_preview' => $fn . '_large.' . $types[$tp], 'file_thumbnail' => $fn . '_thumb.' . $types[$tp], 'size_original' => '', 'size_preview' => '', 'filesize' => 0, 'hits' => 0); $data = copy_attachment_image($input, $data); if (!$data) { return FALSE; } return $this->attached['image'] = $data; }
public function attach_image($input, $orig_filename = '') { global $C; if (isset($this->attached['image'])) { unset($this->attached['image']); } $types = array(IMAGETYPE_GIF => 'gif', IMAGETYPE_JPEG => 'jpg', IMAGETYPE_PNG => 'png'); if (preg_match('/^(http|https|ftp)\\:\\/\\//u', $input)) { $tmp = $C->TMP_DIR . 'tmp' . md5(time() . rand()) . '.' . pathinfo($input, PATHINFO_EXTENSION); $res = my_copy($input, $tmp); if (!$res) { return FALSE; } chmod($tmp, 0666); $input = $tmp; } list($w, $h, $tp) = @getimagesize($input); if ($w == 0 || $h == 0) { return FALSE; } if (!isset($types[$tp])) { return FALSE; } $fn = time() . rand(100000, 999999); $data = (object) array('in_tmpdir' => TRUE, 'title' => $orig_filename, 'file_original' => $fn . '_orig.' . $types[$tp], 'file_preview' => $fn . '_large.' . $types[$tp], 'file_thumbnail' => $fn . '_thumb.' . $types[$tp], 'size_original' => '', 'size_preview' => '', 'filesize' => 0, 'hits' => 0); $data = copy_attachment_image($input, $data); if (!$data) { return FALSE; } rm($input); return $this->attached['image'] = $data; }