Hulp bij FTP Uploadscript
Ik gebruik dit script (dat zijn de functies alleen, maar daar draait het om)
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
74
75
76
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
<?php
function my_ftp_mkdir ($path, $dir) {
$server = "ftp.dukesoft.nl";
// connect naar de ftp server
$connection = ftp_connect ($server);
// inloggen op de ftp server
$user = "******";
$pass = "***";
$result = ftp_login ($connection, $user, $pass);
if ((!$connection) || (!$result)) {
return false;
}
// ga naar de dir die als argument aan de functie is meegegeven
if (!@ftp_chdir ($connection, $path)) {
ftp_close($connection); // ftp verbinding verbreken
return false;
}
// nu de map maken en de rechten goed zetten
if (!@ftp_mkdir($connection, $dir)) {
ftp_close($connection); // ftp verbinding verbreken
return false;
}
$chmod_cmd = "CHMOD 0777 " . $dir;
$chmod = ftp_site($connection, $chmod_cmd);
ftp_close($connection); // ftp verbinding verbreken
return true;
}
function makefileftp ($filename, $map, $content) {
$ftp_server = "ftp.dukesoft.nl";
$ftp_user_name = "*********";
$ftp_user_pass = "***";
$destination_file = 'httpdocs/'.$map.'/'.$filename.'';
$source_file = $content;
// maak een basis connectie aan
$conn_id = ftp_connect($ftp_server);
// aanmelden met een gebruikersnaam en wachtwoord
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// controleer de verbinding
if ((!$conn_id) || (!$login_result))
{
echo "<BR>FTP connectie is mislukt!<BR>";
exit;
}
else
{
echo "<BR>Verbonden met server<BR>";
}
// upload een bestand
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// controleer de upload status
if (!$upload)
{
echo "Bestand niet gemaakt!<BR>";
}
else
{
echo "Bestand gemaakt!<BR>";
}
// sluit de FTP stream
ftp_close($conn_id);
}
?>
function my_ftp_mkdir ($path, $dir) {
$server = "ftp.dukesoft.nl";
// connect naar de ftp server
$connection = ftp_connect ($server);
// inloggen op de ftp server
$user = "******";
$pass = "***";
$result = ftp_login ($connection, $user, $pass);
if ((!$connection) || (!$result)) {
return false;
}
// ga naar de dir die als argument aan de functie is meegegeven
if (!@ftp_chdir ($connection, $path)) {
ftp_close($connection); // ftp verbinding verbreken
return false;
}
// nu de map maken en de rechten goed zetten
if (!@ftp_mkdir($connection, $dir)) {
ftp_close($connection); // ftp verbinding verbreken
return false;
}
$chmod_cmd = "CHMOD 0777 " . $dir;
$chmod = ftp_site($connection, $chmod_cmd);
ftp_close($connection); // ftp verbinding verbreken
return true;
}
function makefileftp ($filename, $map, $content) {
$ftp_server = "ftp.dukesoft.nl";
$ftp_user_name = "*********";
$ftp_user_pass = "***";
$destination_file = 'httpdocs/'.$map.'/'.$filename.'';
$source_file = $content;
// maak een basis connectie aan
$conn_id = ftp_connect($ftp_server);
// aanmelden met een gebruikersnaam en wachtwoord
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// controleer de verbinding
if ((!$conn_id) || (!$login_result))
{
echo "<BR>FTP connectie is mislukt!<BR>";
exit;
}
else
{
echo "<BR>Verbonden met server<BR>";
}
// upload een bestand
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// controleer de upload status
if (!$upload)
{
echo "Bestand niet gemaakt!<BR>";
}
else
{
echo "Bestand gemaakt!<BR>";
}
// sluit de FTP stream
ftp_close($conn_id);
}
?>
Hij geeft terug:
De map is aangemaakt
Verbonden met server
Bestand niet gemaakt!
De map is inderdaad gemaakt, en het bestand dus niet. Weet iemand waar dit aan kan liggen? De functie word goed opgeroepen.. maar toch
Groetjes, Rob Quist
Edit:
Even mn wachtwoorden weggehaald ;)
Gewijzigd op 01/01/1970 01:00:00 door Rob
dus dat je een map en een bestand op de server kan maken via ftp
want via rechten werkt toch bijna niet...
Groetjes Robbert
p.s
Iemand mis een mooi script of de oplossing om zo iets te maken
alvast allemaal bedankt
Laat het stukje script eens zien waar je de functie makefileftp() aanroept. Ik ben namelijk benieuwd hoe je aan de parameter $content komt...
of zo iets in iedergeval.
Gewijzigd op 01/01/1970 01:00:00 door Robbert
ftp_put manual op php.net haal ik dat $content een bestandsnaam moet aangeven en niet de inhoud ervan.
In jouw geval zul je $content dus eerst weg moeten schrijven in een bestandje en dat met ftp_put uploaden naar je server.
Ik heb het nog nooit gebruikt, maar uit de In jouw geval zul je $content dus eerst weg moeten schrijven in een bestandje en dat met ftp_put uploaden naar je server.
Oke... Maar, hoe kan ik dan aan dat bestandje komen waar $content in komt te staan? Moet dat client-side of server-side?
Ja, dat moest ook werken maar wij hebben geen rechten en zo, Ik zal niet weten hoe ik dat moet instellen. Het moest ook kunnen via ftp functies? Alvast bedankt
Bovenstaande geeft iedereen volledige rechten op het bestand. Om de functies fopen() en fwrite() moet je zorgen dat de map waarin je werkt minimaal gechmod is naar (ik geloof) 0776.
Blanche heel erg bedankt !
MVG
Robbert
Een bestandje op de server schrijven kun je doen met het scriptje dat ik gaf in mijn post van 16.18 uur. Als $filename niet bestaat, wordt het door fopen() aangemaakt.