bestand upload
ik heb een vraag ik wil graag een pagina maken op mijn website waarbij mensen bestanden kunnen uploaden naar mijn server. dus niet bestanen uploaden op mijn site.
je moet dus net als bij hotmail bijvoorbeeld je bestand kunnen kiezen en vervolgens uploaden naar mijn ftp in een map waar ze niet bij kunnen komen maar waar ik het gewoon van kan aftrekken.
Heb het hard nodig en kom er niet uit. Help me!!
greettzz
sam
wat heb je al geprobeerd? Heb je al in de scriptlib gekeken? Daar staat volgens mij een script in wat sharefiles ofso heet en dat doet precies wat jij wild
ik heb ben nog niet zo goed in php. Ik heb gekeken naar de scripts wat ik hier kon vinden maar die lijken allemaal te uploaden naar 1 pagina waar dus iedereen kan opkomen en bekijken. Het zit namelijk zo dat ik een drukkerij heb , ik wil nu een pagina maken waar mijn klanten hun files kunnen uploaden die ik op mijn server krijg en die ik kan gaan drukken.
Ja maar dan zal PHP leren mischien het eerste zijn wat je moet doen?
Dan maak je die map toch gewoon niet publiekelijk?
Hebben jullie iets?
formulier.html
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<form action="ftp_upload.php" method="post" enctype="multipart/form-data">
<pre>
Only jpg, gif or pdf.
Max.size: 1 MB
Passive mode <input type="checkbox" name="passive" checked>
Choose Files <input type="file" name="userfile[]">
<input type="file" name="userfile[]">
<input type="submit" value="Upload">
</pre>
</form>
<pre>
Only jpg, gif or pdf.
Max.size: 1 MB
Passive mode <input type="checkbox" name="passive" checked>
Choose Files <input type="file" name="userfile[]">
<input type="file" name="userfile[]">
<input type="submit" value="Upload">
</pre>
</form>
ftp_upload.php
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
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
<?php
$ftp_server = 'your.ftp.server';
$ftp_port = 21;
$ftp_user = 'your.user.name';
$ftp_pass = 'your.password';
$uploaddir = './uploaddir/';
$allowed = array('jpg','jpeg','gif','pdf');
$max_size = 1024 * 1024;
# No edits beyond this line
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('Refresh: 0; URL=formulier.html');
exit;
}
$passive = isset($_POST['passive']) ? true : false;
if (isset($_FILES['userfile'])) {
$connection = @ftp_connect($ftp_server,$ftp_port) or die('Could not connect to the server.');
if (@ftp_login($connection,$ftp_user,$ftp_pass)) {
ftp_pasv($connection,$passive);
foreach ($_FILES['userfile']['error'] as $i => $error) {
if ($error == 0 && $_FILES['userfile']['size'][$i] <= $max_size) {
$file_ext = pathinfo($_FILES['userfile']['name'][$i],PATHINFO_EXTENSION);
$file_name = basename($_FILES['userfile']['name'][$i],'.'.$file_ext);
if (in_array(strtolower($file_ext),$allowed)) {
$new_base = $_FILES['userfile']['name'][$i];
$t = 1;
$list = ftp_nlist($connection,$uploaddir);
while (in_array($new_base,$list)) {
$new_base = $file_name.'['.$t.'].'.$file_ext;
$t++;
}
if (ftp_put($connection,$uploaddir.$new_base,$_FILES['userfile']['tmp_name'][$i],FTP_BINARY)) {
echo 'Successful upload: '.$_FILES['userfile']['name'][$i].'<br>'."\n";
}
}
}
}
}
else {
echo 'Not logged in, user or password incorrect!';
}
ftp_close($connection);
}
?>
$ftp_server = 'your.ftp.server';
$ftp_port = 21;
$ftp_user = 'your.user.name';
$ftp_pass = 'your.password';
$uploaddir = './uploaddir/';
$allowed = array('jpg','jpeg','gif','pdf');
$max_size = 1024 * 1024;
# No edits beyond this line
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
header('Refresh: 0; URL=formulier.html');
exit;
}
$passive = isset($_POST['passive']) ? true : false;
if (isset($_FILES['userfile'])) {
$connection = @ftp_connect($ftp_server,$ftp_port) or die('Could not connect to the server.');
if (@ftp_login($connection,$ftp_user,$ftp_pass)) {
ftp_pasv($connection,$passive);
foreach ($_FILES['userfile']['error'] as $i => $error) {
if ($error == 0 && $_FILES['userfile']['size'][$i] <= $max_size) {
$file_ext = pathinfo($_FILES['userfile']['name'][$i],PATHINFO_EXTENSION);
$file_name = basename($_FILES['userfile']['name'][$i],'.'.$file_ext);
if (in_array(strtolower($file_ext),$allowed)) {
$new_base = $_FILES['userfile']['name'][$i];
$t = 1;
$list = ftp_nlist($connection,$uploaddir);
while (in_array($new_base,$list)) {
$new_base = $file_name.'['.$t.'].'.$file_ext;
$t++;
}
if (ftp_put($connection,$uploaddir.$new_base,$_FILES['userfile']['tmp_name'][$i],FTP_BINARY)) {
echo 'Successful upload: '.$_FILES['userfile']['name'][$i].'<br>'."\n";
}
}
}
}
}
else {
echo 'Not logged in, user or password incorrect!';
}
ftp_close($connection);
}
?>
Dit script is misschien niet helemaal jouw keuze, dan moet je het maar aanpassen. Dit heb ik erin opgenomen:
- één of meerdere uploads
- wel/geen passive mode
- aanpassen van de ftp-server-gegevens
- $allowed bevat de toegestane extensies
- $max_size is de max. bestandsgroote (nu 1024*1024 = 1MB)
- als het bestand al op de server bestaat, wordt het hernoemd (animal.jpg > animal[1].jpg)
Gewijzigd op 01/01/1970 01:00:00 door Kees V
dit was precies wat ik zocht ik kan het nu verdel wel verfijnen.
top