afbeeldingen via HTML-formulier uploaden naar map (url)
Ik ben bezig een upload-mogelijkheid te maken zonder gebruik van FTP-programma of upload-module in een webbrowser. Ik heb een HTML-pagina gemaakt met daarop een aantal beelden, voorzien van een checkbox. En verder nog een knop waarmee de aangevinkte beelden moeten worden geupload.
Nu heb ik eerder een PHP-script gebruikt om gegevens uit een HTML-formulier te mailen naar een opgegeven emailadres. Hierin worden de waarden van benoemde variabelen (ingevulde data of wel/niet aangevinkte checkboxes)keurig gemaild. Geen probleem verder.
Maar nu ben ik aan het proberen een soortgelijke constructie te maken, op gebied van uploaden i.p.v. mailen. Ik wil graag dat mijn aangevinkte afbeeldingen (uit mijn HTML-formulier) geupload worden nadat men op de 'upload-knop' (submit-button) heeft geklikt.
Het is dus niet de bedoeling om eigen, lokale, beelden te kunnen uploaden maar enkel de beelden die in het HTML-formulier aan te vinken zijn.
Wie kan me helpen om de goede richting te vinden in deze kwestie?
Alvast bedankt voor de moeite.
Jeroen
waar staan die files dan? Als ze in het formulier genoemd worden, dan neem ik aan dat ze al op de server staan. Waarheen wil je ze dan uploaden?
Bedankt voor je reactie. Klopt idd, ze staan al ergens online. Ik geef je een linkje naar een voorbeeldje dat ik heb gemaakt van de 'formulier-pagina'. http://www.lislab.nl/lab/voorbeeld/easy_uploader.html En het is mijn bedoeling, om de daar aangevinkte afbeeldingen, na klikken op submit-button, te laten uploaden naar een op te geven locatie (map op een ander domein, bv http://www.voorbeeld.nl/map1). Bij een mailformulier zorgt het php-script ervoor dat de ingevulde waardes worden gemaild naar een opgegeven emailadres. En nu probeer ik ipv waardes te mailen, de geselcteerde beelden te uploaden.
ftp verbinding opzetten.
Als je dan het huidige pad van je afbeelding mee stuurt in je checkbox, dan kun je dit pad gebruiken om het plaatje te uploaden van de ene website naar de nieuwe locatie.
Om afbeeldingen naar een ander domein te uploaden moet je in ieder geval een Als je dan het huidige pad van je afbeelding mee stuurt in je checkbox, dan kun je dit pad gebruiken om het plaatje te uploaden van de ene website naar de nieuwe locatie.
staan de domeinen wel altijd op dezelfde server?
Toevoeging op 24/02/2014 12:43:14:
Sorry, dus liefst niet op zelfde server :-)
cb_foto1, cb_foto2, cb_foto3 zou ik hernoemen naar cb_foto[]
Zet je FTP verbinding op, en de POST met een foreach uploaden.
Toevoeging op 24/02/2014 14:45:36:
Voorbeeldje
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
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
<?php
function ftpupload($filename) {
$ftp_server = 'ftp.domein.nl'; // server
$ftp_user_name = ''; // username
$ftp_user_pass = ''; // password
$dir = '/'; // De locale directory op je server. Bijv /domains/website.com/htdocs/www/ ( Begin en eindig met een / )
$file = $filename; // Orginele naam en locatie zoals in de value van de checkbox
$fileparts = pathinfo($filename);
$filename = uniqid('upload_') . $fileparts['basename']; // Bestand hernoemen. upload_ + een uniek id gevolgt door de orginele naam.
$conn_id = ftp_connect($ftp_server);
if(ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)){
//echo '<p>Verbonden</p>';
if(ftp_put(
$conn_id, // connection
$dir.$filename, // upload to
$file, // file to upload
FTP_BINARY // type FTP_ASCII for text files || FTP_BINARY for others
)
){
echo '<p>'.$filename.' is succesvol geupload</p>'.PHP_EOL;
} else {
echo '<p>Upload '.$filename.' is mislukt</p>'.PHP_EOL;
}
} else {
echo '<p>Verbinding met FTP server is mislukt</p>'.PHP_EOL;
}
ftp_close($conn_id);
}
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['cb_foto'])) {
foreach($_POST['cb_foto'] AS $photo) {
ftpupload($photo);
}
}
}
?>
<form method="POST">
<div id="foto1"><img src="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg"></div>
<div id="foto2"><img src="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg"></div>
<div id="foto3"><img src="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg"></div>
<div id="verzend"><input type="submit" value="upload"/></div>
</form>
function ftpupload($filename) {
$ftp_server = 'ftp.domein.nl'; // server
$ftp_user_name = ''; // username
$ftp_user_pass = ''; // password
$dir = '/'; // De locale directory op je server. Bijv /domains/website.com/htdocs/www/ ( Begin en eindig met een / )
$file = $filename; // Orginele naam en locatie zoals in de value van de checkbox
$fileparts = pathinfo($filename);
$filename = uniqid('upload_') . $fileparts['basename']; // Bestand hernoemen. upload_ + een uniek id gevolgt door de orginele naam.
$conn_id = ftp_connect($ftp_server);
if(ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)){
//echo '<p>Verbonden</p>';
if(ftp_put(
$conn_id, // connection
$dir.$filename, // upload to
$file, // file to upload
FTP_BINARY // type FTP_ASCII for text files || FTP_BINARY for others
)
){
echo '<p>'.$filename.' is succesvol geupload</p>'.PHP_EOL;
} else {
echo '<p>Upload '.$filename.' is mislukt</p>'.PHP_EOL;
}
} else {
echo '<p>Verbinding met FTP server is mislukt</p>'.PHP_EOL;
}
ftp_close($conn_id);
}
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['cb_foto'])) {
foreach($_POST['cb_foto'] AS $photo) {
ftpupload($photo);
}
}
}
?>
<form method="POST">
<div id="foto1"><img src="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg"></div>
<div id="foto2"><img src="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg"></div>
<div id="foto3"><img src="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg"></div>
<div id="verzend"><input type="submit" value="upload"/></div>
</form>
Toevoeging op 26/02/2014 15:46:39:
Hey Michael, geweldig voorbeeldje, zeg ik! Bedankt man. Works like a charm! Maar 1 klein dingetje nog. Het geuploade bestand krijgt een bestandsnaamwijziging. En dat zou eigenlijk niet moeten.
Ik heb al geprobeerd de regel te verwijderen uit jouw voorbeeld ($filename = uniqid('upload_') . $fileparts['basename']; // Bestand hernoemen. upload_ + een uniek id gevolgt door de orginele naam.) maar dan werkt de upload niet meer.
Weet jij misschien ook nog de manier om de bestandsnaam intact te laten?
Wederom bedankt voor je moeite
Als je regel 10 en 11 verwijdert zou ie de originele naam moeten behouden.
Toevoeging op 27/02/2014 11:13:59:
Maar als ik regel 11 aanpas naar dit:
$filename = $fileparts['basename'];
werkt het wel met originele bestandsnaam.
Heel erg bedankt. Dit is nu opgelost. Ik ga dit nog verder uitbouwen, dus misschien kom ik nog terug. Maar tegen die tijd start ik wel een nieuwe topic.
wordt
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
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
<?php
function ftpupload($filename) {
$ftp_server = 'ftp..nl'; // server
$ftp_user_name = ''; // username
$ftp_user_pass = ''; // password
$dir = '/'; // De locale directory op je server. Bijv /domains/website.com/htdocs/www/ ( Begin en eindig met een / )
$fileparts = pathinfo($filename);
$conn_id = ftp_connect($ftp_server);
if(ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)){
//echo '<p>Verbonden</p>';
if(ftp_put(
$conn_id, // connection
$dir.$fileparts['basename'], // upload to
$filename, // file to upload
FTP_BINARY // type FTP_ASCII for text files || FTP_BINARY for others
)
){
echo '<p>'.$fileparts['basename'].' is succesvol geupload</p>'.PHP_EOL;
} else {
echo '<p>Upload '.$fileparts['basename'].' is mislukt</p>'.PHP_EOL;
}
} else {
echo '<p>Verbinding met FTP server is mislukt</p>'.PHP_EOL;
}
ftp_close($conn_id);
}
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['cb_foto'])) {
foreach($_POST['cb_foto'] AS $photo) {
ftpupload($photo);
}
}
}
?>
<form method="POST">
<div id="foto1"><img src="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg"></div>
<div id="foto2"><img src="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg"></div>
<div id="foto3"><img src="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg"></div>
<div id="verzend"><input type="submit" value="upload"/></div>
</form>
function ftpupload($filename) {
$ftp_server = 'ftp..nl'; // server
$ftp_user_name = ''; // username
$ftp_user_pass = ''; // password
$dir = '/'; // De locale directory op je server. Bijv /domains/website.com/htdocs/www/ ( Begin en eindig met een / )
$fileparts = pathinfo($filename);
$conn_id = ftp_connect($ftp_server);
if(ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)){
//echo '<p>Verbonden</p>';
if(ftp_put(
$conn_id, // connection
$dir.$fileparts['basename'], // upload to
$filename, // file to upload
FTP_BINARY // type FTP_ASCII for text files || FTP_BINARY for others
)
){
echo '<p>'.$fileparts['basename'].' is succesvol geupload</p>'.PHP_EOL;
} else {
echo '<p>Upload '.$fileparts['basename'].' is mislukt</p>'.PHP_EOL;
}
} else {
echo '<p>Verbinding met FTP server is mislukt</p>'.PHP_EOL;
}
ftp_close($conn_id);
}
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['cb_foto'])) {
foreach($_POST['cb_foto'] AS $photo) {
ftpupload($photo);
}
}
}
?>
<form method="POST">
<div id="foto1"><img src="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2176_82.jpg"></div>
<div id="foto2"><img src="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2224_56.jpg"></div>
<div id="foto3"><img src="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg" width="40" height="40" /><input type="checkbox" name="cb_foto[]" value="http://www.lislab.nl/lab/voorbeeld/2265_42.jpg"></div>
<div id="verzend"><input type="submit" value="upload"/></div>
</form>
Gewijzigd op 27/02/2014 11:16:33 door Michael -