Ergebnis 1 bis 5 von 5

Thema: Thumbnails auf anderem Server generieren

  1. #1
    Kaiserliche Hoheit Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Thumbnails auf anderem Server generieren

    Hallo Leute, ich stehe vor einem kleinen Problem.
    Ich möchte mittels Script auf einem anderen Server Thumbnails von hochgeladenen Bildern generieren. Die Bilder lade ich mittels ftp Funktionen hoch.

    Das Problem ist nur, wenn man imagecopyresized und ähnliches ausführt, führt man das ja auf dem Server aus, wo das Script gespeichert ist.

    Gibt es eine Möglichkeit, die Thumbnails mittels ftp zu generieren?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    15.01.2007
    Ort
    Hannover
    Beiträge
    382
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    von server A wo dein script ist auf server B wo die bilder sind thumbs zu machen geht glaube ich nicht... und wenn wäre es wohl zimelich kompliziert....

    wenn du die bilder hochlädst, würde ich eine batch date schreiben, die dein script lokal aufruft und danach kannste alles mit thumbs hochladen...

  3. #3
    Kaiserliche Hoheit
    Themenstarter
    Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hat sich erledigt, habs hingekriegt

  4. #4
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    kannst lösung vll posten, interessiert bestimmt auch andere & die sind froh über die lösung !
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  5. #5
    Kaiserliche Hoheit
    Themenstarter
    Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Die Lösung ist recht umfangreich, aber wenn ihr wollt :P

    FTP Klasse
    Code:
    <?php
    
    class ftp &#123;
    		
    	// Private Data
    	var $host = '';
    	var $user = '';
    	var $pass = '';
    	
    	// Private Identifiers
    	var $conn = NULL;
    	var $login = NULL;
    	
    	// Changes into the specified directory
    	function changeDirectory&#40;$dir&#41;&#123;
    		if &#40;@ftp_chdir&#40;$this->conn, $dir&#41;&#41;&#123;
    			return true;
    		&#125;
    		else &#123;
    			return false;
    		&#125;
    	&#125;
    	
    	// This is the same as chmod
    	function changeMod&#40;$path, $file, $mode&#41;&#123;
    		if &#40;chmod&#40;$path.$file, $mode&#41;&#41;&#123;
    			return true;
    		&#125;
    		else &#123;
    			return false;
    		&#125;
    	&#125;
    	
    	// In case php doesn't do it itself
    	function closeConnection&#40;&#41;&#123;
    		@ftp_close&#40;$this->conn&#41;;
    	&#125;
    	
    	// mkdir
    	function createDirectory&#40;$dir&#41;&#123;
    		if &#40;!file_exists&#40;$dir&#41;&#41;&#123;
    			if &#40;ftp_mkdir&#40;$this->conn, $dir&#41;&#41;&#123;
    				return true;
    			&#125;
    			else &#123;
    				return false;
    			&#125;
    		&#125;
    		else &#123;
    			return false;
    		&#125;
    	&#125;
    	
    	//rmdir RECURSIVELY, means that directory does NOT have to be empty in order to get it to work &#58;&#41;
    	function deleteDirectory&#40;$dir&#41;&#123;
    		if &#40;!&#40;@ftp_rmdir&#40;$this->conn, $dir&#41; || @ftp_delete&#40;$this->conn, $dir&#41;&#41;&#41;&#123;
    			$list = @ftp_nlist&#40;$this->conn, $dir&#41;;
    			if &#40;!empty&#40;$list&#41;&#41;&#123;
    				foreach&#40;$list as $value&#41;&#123;
    					$this->deleteDirectory&#40;$value&#41;;
    				&#125;
    			&#125;
    		&#125;
       		@ftp_rmdir&#40;$this->conn, $dir&#41;;
    	&#125;
    	
    	// Delete a File..
    	function deleteFile&#40;$file&#41;&#123;
    		if &#40;ftp_delete&#40;$this->conn, $file&#41;&#41;&#123;
    			return true;
    		&#125;
    		else &#123;
    			return false;
    		&#125;
    	&#125;
    	
    	// Constructor which establishes a connection
    	function ftp&#40;$host, $user, $pass&#41;&#123;
    		$this->setVars&#40;$host, $user, $pass&#41;;
    		$this->conn = ftp_connect&#40;$host&#41;;
    		$this->login = ftp_login&#40;$this->conn, $this->user, $this->pass&#41;;
    	&#125;
    	
    	// Get into the upper Directory
    	function moveUp&#40;&#41;&#123;
    		if &#40;ftp_cdup&#40;$this->conn&#41;&#41;&#123;
    			return true;
    		&#125;
    		else &#123;
    			return false;
    		&#125;
    	&#125;
    	
    	// It's better to let a function assign the variables
    	function setVars&#40;$host, $user, $pass&#41;&#123;
    		$this->host = $host;
    		$this->user = $user;
    		$this->pass = $pass;
    	&#125;
    	
    	// Upload the File!
    	function upload&#40;$serverfile, $localfile, $mode = FTP_BINARY&#41;&#123;
    		if &#40;ftp_put&#40;$this->conn, $serverfile, $localfile, $mode&#41;&#41;&#123;
    			return true;
    		&#125;
    		else &#123;
    			return false;
    		&#125;
    	&#125;
    	
    &#125;
    
    ?>
    Die Datei, die alles ausführt (oder zumindest der Teil davon)
    Code:
    /*
    						##### ADD SCREENSHOT #####
    					*/
    					if &#40;isset&#40;$_POST&#91;'screenshot_create'&#93;&#41;&#41;&#123;
    						// Since the images are hosted on another Server, we have to establish a connection via FTP
    						$ftp = new ftp&#40;$var&#91;'ftp_dlhost'&#93;, $var&#91;'ftp_dluser'&#93;, $var&#91;'ftp_dlpass'&#93;&#41;;
    						// Directory for screenshots is html/images/screenshots
    						$ftp->changeDirectory&#40;'html'&#41;;
    						$ftp->changeDirectory&#40;'images'&#41;;
    						$ftp->changeDirectory&#40;'screenshots'&#41;;
    						// If Directory with Gameid doesnt exist, we create it and move to it
    						if &#40;!$ftp->changeDirectory&#40;$g&#41;&#41;&#123;
    							$ftp->createDirectory&#40;$g&#41;;
    							$ftp->changeDirectory&#40;$g&#41;;
    						&#125;
    						$expl = explode&#40;'.', $_FILES&#91;'screenshot'&#93;&#91;'name'&#93;&#41;;
    						// Add Screenshot to Database
    						$games->createScreenshot&#40;$g, $expl&#91;count&#40;$expl&#41;-1&#93;&#41;;
    						/*
    							The Method getScreenshotID returns the highest ScreenshotID + 1
    							But we have just added another Screenshot, therefore we have to do the -1
    						*/
    						$screenshotID = $games->getScreenshotID&#40;&#41;-1;
    						if &#40;$ftp->upload&#40;$screenshotID.'.'.$expl&#91;count&#40;$expl&#41;-1&#93;, $_FILES&#91;'screenshot'&#93;&#91;'tmp_name'&#93;&#41;&#41;&#123;
    							$ftp2 = new ftp&#40;$var&#91;'ftp_sitehost'&#93;, $var&#91;'ftp_siteuser'&#93;, $var&#91;'ftp_sitepass'&#93;&#41;;
    							if &#40;$games->createScreenshotThumbnail&#40;$g, $screenshotID.'.'.$expl&#91;count&#40;$expl&#41;-1&#93;&#41;&#41;&#123;
    								$ftp2->changeDirectory&#40;'httpdocs'&#41;;
    								$ftp2->changeDirectory&#40;'work'&#41;;
    								$ftp2->changeDirectory&#40;'nextgen.at'&#41;;
    								$ftp2->changeDirectory&#40;'temp'&#41;;
    								$ftp2->changeDirectory&#40;'thumb_screenshots'&#41;;
    								$ftp2->changeMod&#40;'../temp/thumb_screenshots/', 'thumb_'.$screenshotID.'.'.$expl&#91;count&#40;$expl&#41;-1&#93;, 0777&#41;;
    								if &#40;!$ftp->changeDirectory&#40;'thumbs'&#41;&#41;&#123;
    									$ftp->createDirectory&#40;'thumbs'&#41;;
    									$ftp->changeDirectory&#40;'thumbs'&#41;;
    								&#125;
    								$ftp->upload&#40;'thumb_'.$screenshotID.'.'.$expl&#91;count&#40;$expl&#41;-1&#93;, '../temp/thumb_screenshots/thumb_'.$screenshotID.'.'.$expl&#91;count&#40;$expl&#41;-1&#93;, FTP_BINARY&#41;;
    								$ftp2->deleteFile&#40;'thumb_'.$screenshotID.'.'.$expl&#91;count&#40;$expl&#41;-1&#93;&#41;;
    								$ftp->closeConnection&#40;&#41;;
    								unset&#40;$ftp&#41;;
    								unset&#40;$ftp2&#41;;
    								redirect&#40;'module.php?m=games&s=screenshots&g='.$g&#41;;
    							&#125;
    							else &#123;
    								action_fail&#40;$l&#91;'error_uploadfailed'&#93;&#41;;
    							&#125;
    						&#125;
    						else &#123;
    							action_fail&#40;$l&#91;'error_uploadfailed'&#93;&#41;;
    						&#125;
    					&#125;
    					##### ADD SCREENSHOT END #####
    Der Teil der Klasse, in der die Thumbnailgenerierung erfolgt
    Code:
    <?php
    
    class games &#123;
    
    // Stores the Screenshot Info in TBL_SCREENSHOTS
    	function createScreenshot&#40;$gid, $filetype&#41;&#123;
    		global $ado;
    		$record = array&#40;'SID' => $this->getScreenshotID&#40;&#41;,
    						'GID' => $gid,
    						'UID' => $_SESSION&#91;'uid'&#93;,
    						'added' => time&#40;&#41;,
    						'filetype' => $filetype
    					   &#41;;
    		$sql = $ado->AutoExecute&#40;TBL_SCREENSHOTS, $record, 'INSERT'&#41;;
    		if &#40;$sql&#41;&#123;
    				return true;
    			&#125;
    			else &#123;
    				global $l;
    				action_fail&#40;$l&#91;'error_badquery'&#93;&#41;;
    				return false;
    			&#125;
    	&#125;
    
    // Copies and resizes a Screenshot to a Thumbnail
    	function createScreenshotThumbnail&#40;$gid, $file&#41;&#123;
    		global $config, $var;
    		$filepath_temp = $var&#91;'url_website'&#93;.'/temp/thumb_screenshots/'.$gid;
    		$filepath_download = $var&#91;'path_downloads'&#93;.'/images/screenshots/'.$gid;
    		$size = getimagesize&#40;$filepath_download.'/'.$file&#41;;
    		$width = $size&#91;0&#93;;
    		$height = $size&#91;1&#93;;
    		$expl = explode&#40;'.', $file&#41;;
    		$extension = $expl&#91;count&#40;$expl&#41;-1&#93;;
    		switch &#40;$size&#91;2&#93;&#41;&#123;
    			// GIF
    			case 1&#58;
    				$old = imagecreatefromgif&#40;$filepath_download.'/'.$file&#41;;
    				$new = imagecreate&#40;$config->data&#91;'gameScreenshotThumbWidth'&#93;, $config->data&#91;'gameScreenshotThumbHeight'&#93;&#41;;
    				imagecopyresized&#40;$new, $old, 0, 0, 0, 0, $config->data&#91;'gameScreenshotThumbWidth'&#93;, $config->data&#91;'gameScreenshotThumbHeight'&#93;, $width, $height&#41;;
    				imagegif&#40;$new, '../temp/thumb_screenshots/thumb_'.$file&#41;;
    				return true;
    				break;
    			// JPG
    			case 2&#58;
    				$old = imagecreatefromjpeg&#40;$filepath_download.'/'.$file&#41;;
    				$new = imagecreate&#40;$config->data&#91;'gameScreenshotThumbWidth'&#93;, $config->data&#91;'gameScreenshotThumbHeight'&#93;&#41;;
    				imagecopyresized&#40;$new, $old, 0, 0, 0, 0, $config->data&#91;'gameScreenshotThumbWidth'&#93;, $config->data&#91;'gameScreenshotThumbHeight'&#93;, $width, $height&#41;;
    				imagejpeg&#40;$new, '../temp/thumb_screenshots/thumb_'.$file&#41;;
    				return true;
    				break;
    			// PNG
    			case 3&#58;
    				$old = imagecreatefrompng&#40;$filepath_download.'/'.$file&#41;;
    				$new = imagecreate&#40;$config->data&#91;'gameScreenshotThumbWidth'&#93;, $config->data&#91;'gameScreenshotThumbHeight'&#93;&#41;;
    				imagecopyresized&#40;$new, $old, 0, 0, 0, 0, $config->data&#91;'gameScreenshotThumbWidth'&#93;, $config->data&#91;'gameScreenshotThumbHeight'&#93;, $width, $height&#41;;
    				imagepng&#40;$new, '../temp/thumb_screenshots/thumb_'.$file&#41;;
    				return true;
    				break;
    		&#125;	
    	&#125;
    
    &#125;
    So, ich glaub das wars.

Ähnliche Themen

  1. Bild generieren
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 15.06.2008, 20:33
  2. Website auf anderem Server funktioniert nicht
    Von OLI im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 24.02.2007, 14:03
  3. Thumbnail generieren/verbessern
    Von Abwesend im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 12.12.2006, 18:36
  4. Tabelle in File generieren
    Von AitschBi im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 29.10.2004, 10:50
  5. verlinkung zu anderem server
    Von henry im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 14.10.2004, 18:20

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •