Jeg har en upload funktion med resize funktion. Det som sker når jeg uploader et billede, er at det oprindelige billede bliver uploadet til remote server. Det mindre billede/kopien ender i samme niveau hvor uploadfunktionen har sin rod.
Det jeg ønsker er at det lille billede overskriver det store og uploades i stedet.
Kode følger:
if (isset($_FILES['file'])) {
$fileTempName = $_FILES['file']['tmp_name'];
$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
$fileError = $_FILES['file']['error'];
$fileSize = $_FILES['file']['size'];
$kaboom = explode('image/', $fileType);
$extendsion = end($kaboom);
$imageWidth = getimagesize($fileTempName);
$allowedMimeType = array('png', 'jpeg', 'jpg', 'gif');
if (in_array($extendsion, $allowedMimeType)) {
if ($imageWidth[0] < 330) {
echo "To small";
} else {
/*Resize*/
$w = 330;
$h = 330;
list($w_orig, $h_orig) = getimagesize($fileTempName);
$scale_ratio = $w_orig / $h_orig;
if (($w / $h) > $scale_ratio) {
$w = $h * $scale_ratio;
} else {
$h = $w / $scale_ratio;
}
$img = "";
$newcopy = $fileName;
$ext = strtolower($extendsion);
if ($ext == "gif") {
$img = imagecreatefromgif($fileTempName);
} else if ($ext == "png") {
$img = imagecreatefrompng($fileTempName);
} else {
$img = imagecreatefromjpeg($fileTempName);
}
$tci = imagecreatetruecolor($w, $h);
imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
imagejpeg($tci, $newcopy, 75);
/*transfer to external Server curl*/
$ch = curl_init();
$cfile = new CURLFile($fileTempName, $fileType, $newcopy);
$data = array("file" => $cfile);
curl_setopt($ch, CURLOPT_URL, "http://external-server.eu/uploaded.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$respons = curl_exec($ch);
if ($respons == true) {
echo "Success";
} else {
echo "Something went wrong!";
}
curl_close($ch);
}
}
}