foto-upload-functie-dmv-zip

Gesponsorde koppelingen

PHP script bestanden

  1. foto-upload-functie-dmv-zip

« Lees de omschrijving en reacties

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
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<?php

$fotomap
= "fotoalbum"; //map waar de foto's van het fotoalbum komen
$zipnaam = "fotozip"; //tijdelijke naam van het zipbestand op de server
$jaarnu = date('Y'); //vaststellen welk jaar het nu is
$scriptnaam = $_SERVER['PHP_SELF']; //hoe het scritp heet voor het verzenden van het formulier

//de map $fotomap maken als die er nog niet is.

if (!is_dir($fotomap)) {
    mkdir($fotomap, 0777, True);
    echo "De map $fotomap is gemaakt omdat die er nog niet was";
}


//ZIP-Unpack functie maken
function unpackZip($map,$zipnaam) {
    //Het zipbestand openen
    if ($zip = zip_open($map.$zipnaam.".zip"))
    {

        if ($zip) //als het openen is gelukt:
        {
            while ($zip_entry = zip_read($zip)) //zolang er nog wat in de zip zit, bekijk het
            {
                if (zip_entry_open($zip,$zip_entry,"r")) //open de map
                {
                    $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                    $map_name = dirname(zip_entry_name($zip_entry)); //de mapnaam van elk bestandje
                    //Het puntje ( . ) er uit filteren

                    if ($map_name != ".")
                    {
//nu zijn alle mappen nog over behalve het puntje
                        foreach ( explode("/",$map_name) as $k)
                        {

                            $map_op = $map . $k;
                            if (is_file($map_op)) unlink($map_op);
                            if (!is_dir($map_op)) mkdir($map_op);
                            $map_op = $map_op . "/" ;
                        }
                    }

                    $zipentry = zip_entry_name($zip_entry); //de mappen+bestandsnamen
                    $maptot = $map.$zipentry;
                    if(!is_dir($maptot)) {
                        $fp=fopen($maptot,"w");
                    }

                    fwrite($fp,$buf);
                        /*-----------------------------------------------------
                        |        Bestanden filteren        |
                        ------------------------------------------------------*/

                        $extensie = mime_content_type($maptot);
                        $inmap = str_replace($map,"", $maptot);
                        if (is_file($maptot))
                        {

                            if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
                            {
                            }
else{
                                echo "<br />Delete <b>".$inmap."</b>. Bestand is geen geldig of ondersteund bestand!";
                                unlink($maptot);
                            }
                        }

                        /*---------------------------------------------------*/
                    zip_entry_close($zip_entry);
                }
else{
                    return false;
                }
            }

            zip_close($zip); //zip sluiten
        }else{
            return false;
        }

        return true;
    }
}



if (isset($_POST['submit'])) //als er op de submit knop is gedrukt, ga verder
{

    $filename = $_FILES['zipbestand']['name']; //de bestandsnaam van het geuploade bestand
    $extentie = explode(".", "$filename"); //haal de extentie uit de filenaam
    $extentie = strtolower($extentie[1]); //maak de extentie lowercase
    $uploadname = $zipnaam.".zip"; //zo gaat het zipbestand heten na de upload
    
    $jaar = $_POST['jaar'];
    $mapjaar = "Jaar ".$jaar;
    $mapmap = $_POST['map'];
    $map = "".$fotomap."/".$mapjaar."/".$mapmap."/"; //de map waar de foto's in komen
    if (!empty($mapmap)) {
        //kijken of $jaar wel een getal is en of jaar misschien in de toekomst gegeven is.
        if (is_numeric($jaar) and ($jaar <= $jaarnu) and ($jaar > 1900))
        {

            //als de extentie zip is ga verder, anders zeg dat je alleen .zip kan uploaden
            if ($extentie == "zip")
            {

                //Wat als $mapjaar nog niet bestaat?
                if (file_exists($fotomap."/".$mapjaar) == FALSE)
                {

                    //Dan maak je $mapjaar toch gewoon?!
                    echo "De map <b>$mapjaar</b> bestaat nog niet. Hij wordt nu gemaakt";
                    if (mkdir($fotomap."/".$mapjaar, 0777, True)) {
                        $maakmapjaar = "gelukt";
                    }
                }
else{
                    //als de map al wel bestond, dan is het ook dus ook gelukt
                    echo "De map <b>$mapjaar</b> bestaat al";
                    $maakmapjaar = "gelukt";
                }

                    if ($maakmapjaar == "gelukt") //als de map dan eindelijk bestaat, ga dan verder. Ander zeg dat het is mislukt
                    {
                        //als het maken van de jaarmap is gelukt, kijk dan of de map $mapmap al bestaat. Als het is gelukt, zeg het en ga verder, anders zeg dat het is mislukt.
                        if (file_exists($fotomap."/".$mapjaar."/".$mapmap) == FALSE)
                        {

                            echo "<br />De map <b>$mapmap</b> bestaat nog niet. Hij wordt nu gemaakt";
                            if (mkdir($fotomap."/".$mapjaar."/".$mapmap)) {
                                $maakmapmap = "gelukt";
                            }
                        }
else{
                            echo "<br />De map <b>$mapmap</b> bestaat al";
                            $maakmapmap = "gelukt";
                        }

                        if ($maakmapmap == "gelukt")
                        {

                            //het maken van de  map $mapmap is gelukt (of hij bestond al), dus verplaats nu het bestand van de temporary folder naar de map $map
                            if (is_uploaded_file($_FILES['zipbestand']['tmp_name']))
                            {

                                move_uploaded_file($_FILES['zipbestand']['tmp_name'], "$map" . $uploadname);
                                echo  "<br />Het bestand <b>$filename</b> is geupload onder de naam <b>$uploadname</b>";

                                $unpack = unpackZip ($map,$zipnaam); //het zipbestand uitpakken
                                if ($unpack == TRUE) { //als het uitpakken is gelukt.....
                                    echo $message;
                                    echo  "<br />De foto's zijn uitgepakt en staan nu in het fotoalbum!";
                                }
else{
                                    echo "<br />Het uitpakken is mislukt!";
                                }

                                if (unlink("".$map."".$zipnaam.".zip")) { echo  "<br />Het zip-bestand is gedelete!";  } //verwijder het zip bestand, want die heb je niet meer nodig :)
                            }else{
                                echo "<br />Er is iets mis gegaan met het verplaatsen";
                            }
                        }
else{
                            echo "<br />Het maken van de map $mapmap is mislukt!";
                        }
                    }
else{
                            echo "<br />Het maken van de jaarmap $mapjaar is mislukt!";
                    }
            }
else{
                echo "Je hebt geen .Zip bestand opgegeven! Je kan alleen .Zip bestanden uploaden!";
            }
        }
else{
            echo "\"$jaar\" is geen geldig jaartal! Je moet bij \"jaar\" wel een jaartal invullen!";
        }
    }
else{
        echo "Je moet bij \"Map\" wel een gebeurtenis invullen!";
    }
}


//formulier laten zien
echo "<form method=\"post\" action=\"".$scriptnaam."\" enctype=\"multipart/form-data\">
    <p style=\"text-align: left;\">Jaar:
    <input type=\"text\" name=\"jaar\" maxlenght=\"4\" value=\""
.$jaarnu."\"/><br />
    Map:
    <input type=\"text\" name=\"map\" /> <small>(De gebeurtenis)</small><br />
    Zip-bestand: <small>(Mappen in het .zip bestand worden submappen!)</small><br />
    <input type=\"file\" name=\"zipbestand\" size=\"40\" /> <br />
    <input type=\"submit\" value=\"Submit\" name=\"submit\"/>
    </p>
</form>"
;

echo "<p>Deze mappen staan nu in het fotoalbum:<br />";
$baseDir = $_SERVER['DOCUMENT_ROOT']."/".$fotomap."/";

$dir = scandir($baseDir);
$dir = array_flip($dir);
unset($dir['.'], $dir['..']);
$dir = array_flip($dir);

for ($m=2; $dir[$m]; $m++) {
    //if(is_dir($dir)) {
        echo "<br />> ".$dir[$m]."<br />";
        $dir2 = scandir($baseDir."".$dir[$m]."/");
        $dir2 = array_flip($dir2);
        unset($dir2['.'], $dir2['..']);
        $dir2 = array_flip($dir2);
        for ($l=2; $dir2[$l]; $l++) {
            echo "----> ".$dir2[$l]."<br />";
        }

    //}
}
echo "</p>";
?>

 
 

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.