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.
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.
<?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);
}
?>
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)