Gezocht Foto upload script met map selectie Dringend!!
ik bedoel de map waar dit script instaat;) maar die mkdir moet ook naar de map die ik wil.
Code (php)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
// Controleren of het formulier verzonden is
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$target_dir = '';
if(!empty($_POST['map']) && !empty($_POST['eigen_map']))
{
echo "Er mag slechts 1 optie gekozen zijn (map of eigen map)"; // Beide ingevuld
}
elseif(empty($_POST['map']) && empty($_POST['eigen_map']))
{
echo "Er moet minimaal 1 optie gekozen zijn (map of eigen map)"; // Niks ingevuld
}
elseif(empty($_POST['map']) && !empty($_POST['eigen_map']))
{
if(!file_exists($_POST['eigen_map']))
{
mkdir ($_POST['eigen_map'] , 0777, true ); // Map aanmaken, met rechten 0777 (Let op: Aanpassen indien anders gewenst)
}
$target_dir = '/media/werkjaar/2014-2015/'. $_POST['eigen_map']; // informatie over $target_dir: zie de link
} elseif(!empty($_POST['map']) && empty($_POST['eigen_map']))
{
$target_dir = $_POST['map']; // informatie over $target_dir: zie de link
}
if(!empty($target_dir))
{
if($_FILES["fileToUpload"]["name"] != '')
{
// Bestand upload script, zie mijn vorige link
$target_file = $target_dir . '/' . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false)
{
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
}
else
{
echo "File is not an image.";
$uploadOk = 0;
}
// Check if file already exists
if(file_exists($target_file))
{
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if($uploadOk == 0)
{
echo "Sorry, your file was not uploaded.";
}
else
{
// if everything is ok, try to upload file
if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
}
}
}
?>
// Controleren of het formulier verzonden is
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$target_dir = '';
if(!empty($_POST['map']) && !empty($_POST['eigen_map']))
{
echo "Er mag slechts 1 optie gekozen zijn (map of eigen map)"; // Beide ingevuld
}
elseif(empty($_POST['map']) && empty($_POST['eigen_map']))
{
echo "Er moet minimaal 1 optie gekozen zijn (map of eigen map)"; // Niks ingevuld
}
elseif(empty($_POST['map']) && !empty($_POST['eigen_map']))
{
if(!file_exists($_POST['eigen_map']))
{
mkdir ($_POST['eigen_map'] , 0777, true ); // Map aanmaken, met rechten 0777 (Let op: Aanpassen indien anders gewenst)
}
$target_dir = '/media/werkjaar/2014-2015/'. $_POST['eigen_map']; // informatie over $target_dir: zie de link
} elseif(!empty($_POST['map']) && empty($_POST['eigen_map']))
{
$target_dir = $_POST['map']; // informatie over $target_dir: zie de link
}
if(!empty($target_dir))
{
if($_FILES["fileToUpload"]["name"] != '')
{
// Bestand upload script, zie mijn vorige link
$target_file = $target_dir . '/' . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false)
{
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
}
else
{
echo "File is not an image.";
$uploadOk = 0;
}
// Check if file already exists
if(file_exists($target_file))
{
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if($uploadOk == 0)
{
echo "Sorry, your file was not uploaded.";
}
else
{
// if everything is ok, try to upload file
if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
}
}
}
?>
<form action="functions_all.php" method="post" enctype="multipart/form-data">
Selecteer een map: <select name="map">
<option value="">Map Maken</option>
<option value="/map1">testmap</option>
<option value="map2">map2</option>
<option value="map3">map3</option>
</select>
<br />
<br />
Of vul een nieuwe map in: <input type="text" name="eigen_map">
<br />
<br />
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" name="versturen" value="Versturen">
</form>
Regel 19 in de mkdir().
Toevoeging op 09/05/2015 13:27:25:
heb al een paar keer geprobeerd en telkens dit
Wat pas je dan precies aan?
dit
mkdir ('/media/2014/2015');
mkdir ($_POST['eigen_map'] , 0777, true );
en dit:
mkdir ( $_POST['eigen_map'] , 0777, true, '/media/2014-2015/' );
Ik heb al wat opgezocht maar vind niks
Het pad bepaal je in het eerste deel van die functie:
mkdir ('/media/2014-2015/'.$_POST['eigen_map'], 0777, true);
Zie ook de parameter uitleg op: http://php.net/manual/en/function.mkdir.php
Gewijzigd op 09/05/2015 13:35:05 door - Ariën -
en nu krijg ik deze melding :
Warning: mkdir(): open_basedir restriction in effect. File(/media/2014-2015/test) is not within the allowed path(s): (****) in ***functions_all.php on line 19
Haal anders de eerste / eens weg.
Blijkbaar wil PHP je toegang geven tot een map waarje niet in mag, hoger gelegen in de directory-structuur, vandaar die error.
Gewijzigd op 09/05/2015 13:42:31 door - Ariën -
Toevoeging op 09/05/2015 18:50:35:
Hoe kun je meerdere bestanden uploaden?
Gewijzigd op 09/05/2015 18:50:12 door Kjell Baertsoen
door meerdere <input type="file"> velden te hebben.
Gemakkelijkste als je ze dezelfde naam geeft en dan als array gebruikt:
<input type="file" name="fileToUpload[]">
<input type="file" name="fileToUpload[]">
<input type="file" name="fileToUpload[]">
Bouw je script dan zo op, dat je door een niet absoluut bepaald aantal $_FILES['fileTopload'][0], $_FILES['fileTopload'][1] etc loopt.
Dus iets als
foreach($_FILES['fileTopload'] as $uploadfile) {
}
Maar vaak is het ook wel gemakkelijk om in zo'n geval de files "onder water" achter elkaar te uploaden.
dat voorkomt timeouts of data-te-groot fouten als eens iemand 30 files van 20MB uploadt
- het beheer van de directorystructuur waarbinnen je kunt uploaden
- het uploaden zelf
Je bent nu namelijk een beetje veroordeeld tot een onleesbare if-elseif-elseif-elseif-else hel.
Dat gezegd hebbende, je kunt het nog wat breder trekken door hier een soort van media beheersysteempje van te maken die meerdere bestandstypen accepteert.
Oftewel: implementeer een volledig bestandssysteem...
Rickert Bombaklats op 11/05/2015 10:16:44:
Ik ben bezig geweest met een script in OOP style waarmee mappen uitgelezen kunnen worden.
http://delistio.us/
http://delistio.us/
Werkt goed:
Quote:
Apache is functioning normally
? Ik weet niet waar jij kijkt Aar... maar Delistio.us draait gewoon en ik krijg een nette pagina voorgeschoteld.
Alle links gaan naar forbidden
- Aar - op 11/05/2015 10:17:44:
Apache is functioning normally