Ik haal uit een formulier via input type=“file”

Na de submit lees ik de ingevulde velden in:


    $attachments = $_FILES['file'];


Nu wil ik een extra naam toevoegen aan de array(). Hoe doe ik dat?
@Ariën, dat dacht ik ook,had ik al geprobeerd, net nog eens, maar toch wordt variabele niet toegevoegd.
Laat eens een voorbeeld zien, én hoe je $FILES eruit ziet.
Waarom wil je daar iets aan toevoegen, als ik vragen mag?

Het is een global variabele die in dit geval wordt gevuld via het upload-element.
Ik heb een formulier, ik stuur nu gemakkelijk de gekozen bestanden per mail toe.


    1:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br>
    2:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br>
    3:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br>
    4:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/>


Vervolgens, na submit, lees ik de ingevoerde/gekozen bestanden in met


    $attachments = $_FILES['file'];


Dat werkt prima. Echte nu wil ik een basislogo toevoegen, zodat de gebruiker, wat hij ook kiest, altijd ook het logo toegevoegd krijgt als beeld 0.

Wat heeft een logo te maken met een upload uit FILES?
Iemand van de organisatie kiest foto’s, Max 4 stuks. Afmetingen check ik. En die medewerker stuurt die selectie naar een organisatie. En daar wil ik dus altijd als eerste ons eigen logo toevoegen. Ik kan het ook anders doen. Door in de body het logo in een HTML vorm toe te voegen. Maar ik wilde eens proberen of ik dit kiezen met een array kon afwerken. De basis keuzes werken goed. Maar invoegen niet dus. Zou mooi zijn als het zou lukken.
En waarom moet die foto speciaal in de FILES worden meegestuurd? Die hele trits aan uploads worden toch verwerkt. Dan kan je je eigen logo er zo aan toevoegen. Al hoewel ik dan denk aan DRY (Don't Repeat Yourself).
Je hebt immers al een locatie naar je eigen logo.
Klopt helemaal, alles draait prima, maar ik wilde dit probleem eens tackelen. Kijken of daar ook een simpele aanpak voor was…dank!
Komt dit in de buurt?
 <?php
if ( $_POST['submit']):
	$attachments = [];
	
	echo '<pre>files = ' . print_r($_FILES, TRUE ) . '</pre>';
	$attachments = $_FILES['file'];

	echo '<pre>a1 = ' . print_r( $attachments, TRUE ) . '</pre>';
	$imgsize = filesize( 'logo.jpg' );

	$attachments['name'] = $attachments['name'] + ['logo' => 'logo.jpg'];
	$attachments['size'] = $attachments['size'] + ['logo' => $imgsize];
	echo '<pre>a2 = ' . print_r( $attachments, TRUE ) . '</pre>';

	echo '<p>Toegevoegd logo : ' . $attachments['name']['logo'] . '</p>';
	
	foreach ($attachments['name'] as $key => $value):
		if ( $value ):
			echo $key . ' = ' . $value . ' (' . (int)($attachments['size'][$key]/1000) . 'kB)<br />';
		endif;
	endforeach;
endif;

?>

<hr />

<form method="post" action="" enctype="multipart/form-data">

	1:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br />
	2:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br />
	3:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br />
	4:<input type="file" name="file[]" accept=".jpg,.png,.jpeg,.pdf"/><br />

	<input type="submit" name="submit" value="submit" />

</form>
@Adaptive Solution: dit ziet er erruggoed uit. Ik ga het proberen. Zal morgen worden. Dank! Leren is leuk. Omdat het kan.

Reageren