Hallo,

Met een upload script voor afbeeldingen laat ik een thumbnail maken en worden vervolgens beide weggeschreven in 2 verschillende mappen (fullsize) en (thumbnail).
Daarna worden ze in een database geschreven waar ik 2 aparte rijen heb gemaakt, één voor de fullsize en één voor de thumbnail.
Op het moment dat er een spatie of speciale karakters in de naam van de afbeelding voorkomen die geupload wor, gaat het mis bij het ophalen van de thumbnail afbeelding. om dit te voorkomen dacht ik om zelf een geheel nieuwe naam aan te maken voor de thumbnail zoals bijvoorbeeld thumb1, thumb2, thumb3 enz.

Hoe zou ik dit kunnen creëren zonder dat er dubbele namen worden gemaak?

Dit is het deel van mijn script


<?php
for($i = 0; $i < count($tmp_name_array); $i++){
if(move_uploaded_file($tmp_name_array[$i], "../upload/fullsize/".$name_array[$i])){
            		//SUCCES
                	//maak thumbnail
                	create_thumbnail('../upload/fullsize/'.$thumbpath[$i], "../upload/thumbnail/".$name_array[$i], '350', '230');
					if(in_array($file_extention, $movieType)){
                		$thumbSize_link = "";
                	}else{
                		$thumbSize_link = $name_array[$i];
                	}
                	$fullSize_link = $name_array[$i];
                	$insertValuesSQL .= "('".$fullSize_link."', '".$thumbSize_link."', NOW()),";
                	
            	}

}
?>


En wegschrijven naar de database


<?php
if(!empty($insertValuesSQL)){
            $insertValuesSQL = trim($insertValuesSQL,',');
            // Insert image file name into database
            $insert = mysqli_query($connection, "INSERT INTO SAimages (fullsize_name, thumbnail_name, uploaded_on) VALUES $insertValuesSQL");
}
?>


Ik zie graag wat ideeën :-)
Volgens mij moet $thumbID na elke INSERT de waarde krijgen van elke upload die in de database wordt gezet.
Dat lijkt mij toch correct?

Ik weet niet of dit jou doel is, maar persoonlijk zou ik aanraden om uploads ook in een koppeltabel op te slaan, zodat je deze aan andere items kan koppelen. Zo kan je een foto oneindig vaak koppelen aan andere items. Maar dit is gewoon een tip.
Hi Ariën,


(Volgens mij moet $thumbID na elke INSERT de waarde krijgen van elke upload die in de database wordt gezet.)
Helaas doet hij dat dus niet, anders zou ik geholpen zijn.


<?php
//doorloop loop
for($i = 0; $i < count($tmp_name_array); $i++){
	if(move_uploaded_file($tmp_name_array[$i], "../upload/fullsize/".$name_array[$i])){
	
    	$insertValuesSQL .= "('".$fullSize_link."', '".$thumbSize_link."', NOW()),";
    	$insertValuesSQL = trim($insertValuesSQL,',');
    	//insert record + noteer auto_increment id
    	$insert = mysqli_query($connection, "INSERT INTO SAimages (fullsize_name, thumbnail, uploaded_on) VALUES $insertValuesSQL");
    	//sla ID op voor gebruik
    	$thumbID = $connection->insert_id;
 		//sla afbeelding op met dit id
 		create_thumbnail('../upload/fullsize/'.$fullSize_link, "../upload/thumbnail/thumb".$thumbID.".jpg", '350', '230');
    	if($insert){
            print('Geslaagd');
        }else{
        	print('Niet geslaagd');
        }
 		
 	}
}
?>


Zoals Thomas zei heb ik het nogmaals in een loop gezet.

Ik dan het volgende terug:

('304192.jpg', 'thumb', NOW())Geslaagd('304192.jpg', 'thumb', NOW())('boom.png', 'thumb', NOW())Niet geslaagd
Omdat je op lijn 6 je query-deel steeds aanelkaar plakt. En dus vernachel je de query per iteratie na de eerste
Haal die punt dus weg.

Die trim() lijkt me loos.

En zet je querystring op lijn 9 bij sterke voorkeur in een aparte variabele. Dan kan je dit makkelijker debuggen met een echo.
Hallo Ariën,

Heb de punt weg gehaald zoals je zei en nu werkt het zoals ik het wil :)
Het script upload de foto's en maakt per record een thumbnail aan met de ID code.
Nu kan ik ze makkelijk opvragen en weergeven!

Reageren