Sehr geehrte Damen und Herren,
ich stehe momentan am Punkt wo ich ohne externe Hilfe nicht weiter komme.
Mein Problem ist das ich einen Server hab (Debian, Google Compute) und von dort aus ein Projekt am entwickeln bin. Dabei müssen hochgeladene Bilder in js/mini-upload-form/uploads hochgeladen werden (funktioniert) dann von da aus mit dem script verkleinert und in js/mini-upload-form/tmp (funktioniert auch) gespeichert werden.
- Skript zum Verkleinern.
Dann soll von dem Verzeichniss tmp via FTP an meinen anderen Server hochgeladen werden.
Es erstellt zwar per ftp_mkdir() die Ordner, jedoch lädt er nichts hoch.
Als Debug hab ich noch die Bilder ausgeben lassen um zu sehen ob es evtl. beschädigte Daten sind. Aber auch das war es nicht.
Hier mein Problems-Skript:
Ich bedanke mich schon im Vorraus
ich stehe momentan am Punkt wo ich ohne externe Hilfe nicht weiter komme.
Mein Problem ist das ich einen Server hab (Debian, Google Compute) und von dort aus ein Projekt am entwickeln bin. Dabei müssen hochgeladene Bilder in js/mini-upload-form/uploads hochgeladen werden (funktioniert) dann von da aus mit dem script verkleinert und in js/mini-upload-form/tmp (funktioniert auch) gespeichert werden.
PHP-Code:
function resizeImage ($filepath_old, $filepath_new, $dirpath_new, $image_dimension, $scale_mode = 0) {
if (!(file_exists($filepath_old)) || file_exists($filepath_new)) return false;
$image_attributes = getimagesize($filepath_old);
$image_width_old = $image_attributes[0];
$image_height_old = $image_attributes[1];
$image_filetype = $image_attributes[2];
if ($image_width_old <= 0 || $image_height_old <= 0) return false;
$image_aspectratio = $image_width_old / $image_height_old;
if ($scale_mode == 0) {
$scale_mode = ($image_aspectratio > 1 ? -1 : -2);
} elseif ($scale_mode == 1) {
$scale_mode = ($image_aspectratio > 1 ? -2 : -1);
}
if ($scale_mode == -1) {
$image_width_new = $image_dimension;
$image_height_new = round($image_dimension / $image_aspectratio);
} elseif ($scale_mode == -2) {
$image_height_new = $image_dimension;
$image_width_new = round($image_dimension * $image_aspectratio);
} else {
return false;
}
mkdir($dirpath_new, 0755, true);
switch ($image_filetype) {
case 1:
$image_old = imagecreatefromgif($filepath_old);
$image_new = imagecreate($image_width_new, $image_height_new);
imagecopyresampled($image_new, $image_old, 0, 0, 0, 0, $image_width_new, $image_height_new, $image_width_old, $image_height_old);
imagegif($image_new, $filepath_new);
break;
case 2:
$image_old = imagecreatefromjpeg($filepath_old);
$image_new = imagecreatetruecolor($image_width_new, $image_height_new);
imagecopyresampled($image_new, $image_old, 0, 0, 0, 0, $image_width_new, $image_height_new, $image_width_old, $image_height_old);
imagejpeg($image_new, $filepath_new);
break;
case 3:
$image_old = imagecreatefrompng($filepath_old);
$image_colordepth = imagecolorstotal($image_old);
if ($image_colordepth == 0 || $image_colordepth > 255) {
$image_new = imagecreatetruecolor($image_width_new, $image_height_new);
} else {
$image_new = imagecreate($image_width_new, $image_height_new);
}
imagealphablending($image_new, false);
imagecopyresampled($image_new, $image_old, 0, 0, 0, 0, $image_width_new, $image_height_new, $image_width_old, $image_height_old);
imagesavealpha($image_new, true);
imagepng($image_new, $filepath_new);
break;
default:
return false;
}
imagedestroy($image_old);
imagedestroy($image_new);
return true;
}
Dann soll von dem Verzeichniss tmp via FTP an meinen anderen Server hochgeladen werden.
Es erstellt zwar per ftp_mkdir() die Ordner, jedoch lädt er nichts hoch.
Als Debug hab ich noch die Bilder ausgeben lassen um zu sehen ob es evtl. beschädigte Daten sind. Aber auch das war es nicht.
Hier mein Problems-Skript:
PHP-Code:
$ftp_server = "****";
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, "****", "****") or die("Passwort oder Benutzername falsch");
function umlaute_ersetzen($rpText){
$such_array = array ('ä', 'ö', 'ü', 'ß', 'Ä', 'Ö', 'Ü', ' ');
$ersetzen_array = array ('ae', 'oe', 'ue', 'ss', 'Ae', 'Oe', 'Ue', '-');
$neuer_text = str_replace($such_array, $ersetzen_array, $rpText);
return strtolower($neuer_text);
}
$titelforsave = umlaute_ersetzen($titel);
$markeforsave = umlaute_ersetzen($marke);
ftp_mkdir($conn_id, '/www/upload/'.$markeforsave.'/');
ftp_mkdir($conn_id, '/www/upload/'.$markeforsave.'/'.$AID.'-'.$titelforsave.'/');
ftp_mkdir($conn_id, '/www/upload/'.$markeforsave.'/'.$AID.'-'.$titelforsave.'/big/');
$i = 2;
for($d = 1; $d <= $files_count; $d++){
$a = $i - 1;
$myfile = $files[$i];
resizeImage('js/mini-upload-form/uploads/'.$files[$i], 'js/mini-upload-form/tmp/'.$files[$i], 'js/mini-upload-form/tmp/', 600, -1);
ftp_put($conn_id, '/www/upload/'.$markeforsave.'/'.$AID.'-'.$titelforsave.'/bild'.$a.'.jpg', 'js/mini-upload-form/tmp/'.$myfile, FTP_BINARY);
ftp_put($conn_id, '/www/upload/'.$markeforsave.'/'.$AID.'-'.$titelforsave.'/big/bild'.$a.'.JPG', 'js/mini-upload-form/uploads/'.$myfile, FTP_BINARY);
echo '<img src="js/mini-upload-form/tmp/'.$myfile.'">';
//unlink('js/mini-upload-form/uploads/'.$files[$i]);
//unlink('js/mini-upload-form/tmp/'.$files[$i]);
$i++;
}
Kommentar