public function handle($asynctoken, $url, $file, $mode, $minWidth, $minHeight) { try { $token = md5(microtime()); if ($file) { $ext = $this->guessExtension($file); $filename = $this->_tmpDir . '/' . $minWidth . '_' . $minHeight . '_' . $token . '.' . $ext; file_put_contents($filename, $file); $request = 'file://' . $filename; } elseif ($url) { $request = $url; if ($mode === false) { $filename = $this->_tmpDir . '/' . $minWidth . '_' . $minHeight . '_' . $token . '.url'; file_put_contents($filename, $url); } } else { $request = null; } if ($mode === false && !$asynctoken) { $asynctoken = $token; } $res = $this->_searcher->find($mode, $request, $asynctoken, $minWidth, $minHeight); } catch (\Exception $e) { $res = ['error' => $e->getMessage()]; } header('Content-Type: application/json'); echo json_encode($res); }
public function process() { $dir = dir($this->_tmpDir); if (!$dir) { return; } while (false !== ($entry = $dir->read())) { if (preg_match('/^([\\-0-9]+)_([\\-0-9]+)_(.+)\\.([^\\.]+)$/', $entry, $parts)) { $minX = $parts[1]; $minY = $parts[2]; $name = $parts[3]; $ext = $parts[4]; $file = $this->_tmpDir . '/' . $entry; switch ($ext) { case 'gif': case 'jpg': case 'png': $this->_searcher->find(true, $entry, $name, $minX, $minY); @unlink($file); break; case 'url': $url = trim(file_get_contents($file)); $this->_searcher->find(true, $url, $name, $minX, $minY); @unlink($file); break; } } } $dir->close(); }