voorstellen + hulp nodig met php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robin stek

Robin stek

26/09/2019 14:13:36
Quote Anchor link
Hallo allemaal,
ik Ben robin 22 jaar oud en net begonnen met programmeren vandaar dat ik hier even een kijkje neem.

Ik heb meteen een vraagje ik moet ervoor zorgen dat er een random folder word gemaakt(in het mapje vierkant) bij elke keer als ik een foto upload (door 1 persoon) alleen nu is het zo dat de folder wordt gemaakt en dat de foto word opgeslagen alleen niet op de juiste manier. want de folder en foto komen naast elkaar en de bedoeling is dat de foto in het mapje komt die op dat moment ook wordt gemaakt. kan iemand me hiermee helpen?

$foldername = uniqid();
echo $foldername;

$destination = "vierkant/$foldername";



//The name of the directory that we need to create.


//Check if the directory already exists.
if(!is_dir($destination)){
//Directory does not exist, so lets create it.
mkdir($destination, 0755, true);
}







for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
'vierkant/' . $_FILES['file']['name'][$i]
);
}
Gewijzigd op 26/09/2019 15:11:42 door Robin stek
 
PHP hulp

PHP hulp

31/10/2020 17:54:41
 
- Ariën -
Beheerder

- Ariën -

26/09/2019 14:40:13
Quote Anchor link
Je bedoelt dat de foto niet in de juiste aangemaakte folder ($destination) staat?
Dat klopt, die geef je ook niet mee in de tweede parameter van move_uploaded_file(...)
 
Robin stek

Robin stek

26/09/2019 15:00:52
Quote Anchor link
- Ariën - op 26/09/2019 14:40:13:
Je bedoelt dat de foto niet in de juiste aangemaakte folder ($destination) staat?
Dat klopt, die geef je ook niet mee in de tweede parameter van move_uploaded_file(...)


ja klopt zou niet weten wat/waar ik het in moet zetten
 
- Ariën -
Beheerder

- Ariën -

26/09/2019 15:01:47
Quote Anchor link
je hebt nu hardcoded vierkant/ er staan. Gebruik daar gewoon
$destination met een / erbij.
Gewijzigd op 26/09/2019 15:02:43 door - Ariën -
 
Robin stek

Robin stek

26/09/2019 15:15:39
Quote Anchor link
- Ariën - op 26/09/2019 15:01:47:
je hebt nu hardcoded vierkant/ er staan. Gebruik daar gewoon
$destination met een / erbij.


sorry was het vergeten bij te zetten maar in het mapje vierkant moet een random map komen met de foto erin. het mapje en foto worden gemaakt alleen moet de foto nog in dat mapje die op dat moment word gemaakt
 
- Ariën -
Beheerder

- Ariën -

26/09/2019 15:19:52
Quote Anchor link
Dan maak je toch een map met een random naam aan, zoals je eerst in het script toch ook doet?
Ik weet uit mijn hoofd miet of mkdir() een heel pad kan aanmaken met meerdere folders.
 
Michael -

Michael -

26/09/2019 17:07:36
Quote Anchor link
Welkom Robin,

Graag wanneer je code plaats, deze tussen de [code­]code tags[/code­] plaatsen of tussen <­?­­php en ?­>. Zie FAQ

Wat Arien bedoelt is dat je een unieke folder maakt in $foldername, maar deze vervolgens niet gebruikt bij 'move_uploaded_file'.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//Oude code
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
'vierkant/' . $_FILES['file']['name'][$i]
);


//Nieuwe code
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
$destination . '/' . $_FILES['file']['name'][$i]
);

?>
Gewijzigd op 26/09/2019 17:10:40 door Michael -
 
Robin stek

Robin stek

27/09/2019 09:24:38
Quote Anchor link
Michael - op 26/09/2019 17:07:36:
Welkom Robin,

Graag wanneer je code plaats, deze tussen de [code­]code tags[/code­] plaatsen of tussen <­?­­php en ?­>. Zie FAQ

Wat Arien bedoelt is dat je een unieke folder maakt in $foldername, maar deze vervolgens niet gebruikt bij 'move_uploaded_file'.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//Oude code
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
'vierkant/' . $_FILES['file']['name'][$i]
);


//Nieuwe code
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
$destination . '/' . $_FILES['file']['name'][$i]
);

?>


ahh ja ik zie het zou ik de volgende keer doen bedankt!
 
Robin stek

Robin stek

30/09/2019 11:37:01
Quote Anchor link
Even een ander vraagje de bedoeling is dat ik dit krijg: 'vierkant/destination/10.png' maar dan automatische heb dat zelf getypt. Ik moet iets maken met $destination om dat automatische te laten gebeuren zodat ik zie welke foto er in die map zit.

iemand die weet hoe?


­
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

include 'helpers.php';

$foldername = uniqid();
 
$destination = "vierkant/$foldername";

//Check if the directory already exists.
if(!is_dir($destination)){
    //Directory does not exist, so lets create it.
    mkdir($destination, 0755, true);
}


$files = [];

for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
    move_uploaded_file(
        $_FILES['file']['tmp_name'][$i],
$destination . '/' . $_FILES['file']['name'][$i]
    );


    //

}

echo $destination;
print_r($_FILES);

[

    'vierkant/132432423/9.png',
    'vierkant/132432423/10.png'
]
;

?>



Edit:
Post verbeterd, quote hoorde er niet.
Gewijzigd op 30/09/2019 11:46:01 door - Ariën -
 
- Ariën -
Beheerder

- Ariën -

30/09/2019 11:51:58
Quote Anchor link
Kan je wat met scandir ?
 
Robin stek

Robin stek

30/09/2019 13:14:25
Quote Anchor link
- Ariën - op 30/09/2019 11:51:58:
Kan je wat met scandir ?


ik heb er naar gekeken alleen mij werd vertelt dat ik al een loop in me code heb en dat ik alleen nog iets met $_files moet doen en en $destination omdat daar blijkbaar de array staat of word getoond. (het is een opdracht wat ik moet doen)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/09/2019 17:44:23
Quote Anchor link
Wil je het pad tonen?
Dan doe je gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $destination . '/' . $_FILES['file']['name'][$i]; ?>

Of bedoel je wellicht iets anders?
 
Michael -

Michael -

01/10/2019 08:29:46
Quote Anchor link
Frank Nietbelangrijk op 30/09/2019 17:44:23:
Wil je het pad tonen?
Dan doe je gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $destination . '/' . $_FILES['file']['name'][$i]; ?>

Of bedoel je wellicht iets anders?


Dan wel in de for loop anders krijg je alleen de laatste.
 
Robin stek

Robin stek

01/10/2019 14:03:51
Quote Anchor link
de bedoeling is nu dat ik alleen de foto kan echo'n maar op het moment pakt hij heel de array en moet alleen de fotonaam heb hier een foto https://www.mupload.nl/img/t2phib7.png
..


<­?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

include 'helpers.php';

$foldername = uniqid();

$destination = "vierkant/$foldername";

//Check if the directory already exists.
if(!is_dir($destination)){
//Directory does not exist, so lets create it.
mkdir($destination, 0755, true);
}

$files = [];

for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
$destination . '/' . $_FILES['file']['name'][$i]
);

//
print_r($_FILES['file']['name']);

}
?­>
Gewijzigd op 01/10/2019 14:12:55 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/10/2019 14:54:35
Quote Anchor link
print_r kun je inderdaad onder andere gebruiken om een complete array te bekijken. Zoals ik het op de foto zie heeft de array telkens twee elementen namelijk 0 en 1.

Deze kun je er als volgt uitvissen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $_FILES['file']['name'][1];
?>
 
Robin stek

Robin stek

01/10/2019 15:33:22
Quote Anchor link
Frank Nietbelangrijk op 01/10/2019 14:54:35:
print_r kun je inderdaad onder andere gebruiken om een complete array te bekijken. Zoals ik het op de foto zie heeft de array telkens twee elementen namelijk 0 en 1.

Deze kun je er als volgt uitvissen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $_FILES['file']['name'][1];
?>

gelukt bedankt!


Toevoeging op 02/10/2019 11:34:29:
Gewijzigd op 02/10/2019 12:34:46 door Robin stek
 
Michael -

Michael -

02/10/2019 12:50:18
Quote Anchor link
Nu ga je er vanuit dat de array alleen 0 en 1 bevat. Je zult dan ook moeten controleren of ze gevuld zijn. Anders zal echo $_FILES['file']['name'][1]; falen als je maar 1 bestand upload. Als je 3 bestanden upload zal de derde niet worden weergegeven. Het is altijd makkelijk om het dynamisch te houden, zodat je evt ook kan uitbreiden naar meerdere uploads.
Het wandelen door een array doe je met een for loop of foreach.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach($_FILES['file']['name'] as $file) {
    echo $file;
}

?>

Het eerdere antwoord van Frank is nog eenvoudiger. Gewoon de echo uitvoeren in de for loop.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
    move_uploaded_file(
        $_FILES['file']['tmp_name'][$i],
        $destination . '/' . $_FILES['file']['name'][$i]
    );

    echo $destination . '/' . $_FILES['file']['name'][$i];
}

?>
 
Robin stek

Robin stek

02/10/2019 14:03:53
Quote Anchor link
bedankt voor de reacties ben eruit gekomen


ik ben op het moment bezig met de foreach als iemand me kan helpen zou dat top zijn :)
ik moet met de code het volgende maken:

// maak een foreach loop die over $upload_files loopt

// en elke iteratie moet ie over de functie runnen.
// de ecircles moeten komen in een mapje die "circles/JE_UNIEKE_NAAM" heet.
//toCircle('pad_van_het_bestand hier komt dus mapjes vierkant', 'waar_het_circle_bestand_moet_komen,png hier komt dus mapje circle ', 450);
// 2. Deze door de functie die in helpers staat runnen.


dit is mijn code nu:

[code­]

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

include 'helpers.php';

$foldername = uniqid();

$destination = "vierkant/$foldername";

//Check if the directory already exists.
if(!is_dir($destination)){
//Directory does not exist, so lets create it.
mkdir($destination, 0755, true);
}

$upload_files =[];

for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
move_uploaded_file(
$_FILES['file']['tmp_name'][$i],
$destination . '/' . $_FILES['file']['name'][$i]
);

$upload_files[] = $destination . '/' . $_FILES['file']['name'][$i];
}

print_r($upload_files);
[/code­]
Gewijzigd op 02/10/2019 14:05:31 door Robin stek
 
Michael -

Michael -

03/10/2019 06:31:52
Quote Anchor link
Ten eerste moet je natuurlijk zelf je huiswerk maken ;-)
Ten tweede, wie heeft die tekst geschreven? Circles en vierkant? Wil je nou Nederlands of Engels.
Ik had al eerder een voorbeeld gegeven van een foreach.
Je kunt elke functie opzoeken op php.net www.php.net/foreach
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.