Multiple foto upload
Ik heb een upload script die meteen de geuploade foto resized naar een maximale grote.
Het probleem is dat het bedoeld is voor 1 foto.
Nu is het een functie die ik oproep dus je zou zeggen, 3 keer de functie aanroepen met andere waarden.
Dit werkt ook, maar als 1 van de 3 een fout bevat, uploaden de andere 2 gewoon de foto.
Ik moet dus voor elkaar zien te krijgen dat als 1 foto een fout bevat ze alle drie worden gecanceld.
Het script:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
if(!empty($_FILES['foto1']['name'])) {
include('php/imagehandler.inc.php');
$ext = explode(".", $_FILES['foto1']['name']);
$RandomFotoName_1 = "".$_POST['randomcode']."_1.".$ext[1]."";
$errorr = upload($_FILES['foto1']['tmp_name'],'images/advertenties/',$RandomFotoName_1,400,400);
if($errorr[0] == false){ $error .= "".$errorr[2]."|Afbeeldingnaam: ".$_FILES['foto1']['name']."|Afbeeldingnaam nieuw: $RandomFotoName_1";
$_POST['actie'] = "Stap 2"; }
}
include('php/imagehandler.inc.php');
$ext = explode(".", $_FILES['foto1']['name']);
$RandomFotoName_1 = "".$_POST['randomcode']."_1.".$ext[1]."";
$errorr = upload($_FILES['foto1']['tmp_name'],'images/advertenties/',$RandomFotoName_1,400,400);
if($errorr[0] == false){ $error .= "".$errorr[2]."|Afbeeldingnaam: ".$_FILES['foto1']['name']."|Afbeeldingnaam nieuw: $RandomFotoName_1";
$_POST['actie'] = "Stap 2"; }
}
De overige 2 file fields heten toepasselijk:
foto2 en foto3
Kan iemand mij helpen??
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
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
<?PHP
if(!empty($_FILES['foto1']['name'])||!empty($_FILES['foto2']['name'])||!empty($_FILES['foto3']['name'])){
include('php/imagehandler.inc.php');
$ext1 = explode(".", $_FILES['foto1']['name']);
$ext2 = explode(".", $_FILES['foto2']['name']);
$ext3 = explode(".", $_FILES['foto3']['name']);
// je hield hier geen rekening met het feit dat files ook vakanie.foto.jpg kunnen heten, en dan pakt hij 'foto' als extensie!
$cnt1=count($ext1)-1;
$cnt2=count($ext2)-1;
$cnt3=count($ext3)-1;
$RandomFotoName_1 = $_POST['randomcode']."_1.".$ext1[$cnt1];
$RandomFotoName_2 = $_POST['randomcode']."_2.".$ext2[$cnt2];
$RandomFotoName_3 = $_POST['randomcode']."_3.".$ext3[$cnt3];
//als je waardes achter elkaar plakt met de '.' dan hoef je niet voor een variable ' "". ' en achter een variable ' ."" ' te doen...
$errorr1 = upload($_FILES['foto1']['tmp_name'],'images/advertenties/',$RandomFotoName_1,400,400);
$errorr2 = upload($_FILES['foto2']['tmp_name'],'images/advertenties/',$RandomFotoName_2,400,400);
$errorr3 = upload($_FILES['foto3']['tmp_name'],'images/advertenties/',$RandomFotoName_3,400,400);
if($errorr1[0] == false && $errorr2 == false && $errorr3 == false){
$error .= $errorr1[2]."|Afbeeldingnaam: ".$_FILES['foto1']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_1;
$error .= $errorr2[2]."|Afbeeldingnaam: ".$_FILES['foto2']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_2;
$error .= $errorr3[2]."|Afbeeldingnaam: ".$_FILES['foto3']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_3;
$_POST['actie'] = "Stap 2";
}
else{
//Er was wel een error, dus hier zou een of andere error afhandeling moeten komen...
}
}
?>
if(!empty($_FILES['foto1']['name'])||!empty($_FILES['foto2']['name'])||!empty($_FILES['foto3']['name'])){
include('php/imagehandler.inc.php');
$ext1 = explode(".", $_FILES['foto1']['name']);
$ext2 = explode(".", $_FILES['foto2']['name']);
$ext3 = explode(".", $_FILES['foto3']['name']);
// je hield hier geen rekening met het feit dat files ook vakanie.foto.jpg kunnen heten, en dan pakt hij 'foto' als extensie!
$cnt1=count($ext1)-1;
$cnt2=count($ext2)-1;
$cnt3=count($ext3)-1;
$RandomFotoName_1 = $_POST['randomcode']."_1.".$ext1[$cnt1];
$RandomFotoName_2 = $_POST['randomcode']."_2.".$ext2[$cnt2];
$RandomFotoName_3 = $_POST['randomcode']."_3.".$ext3[$cnt3];
//als je waardes achter elkaar plakt met de '.' dan hoef je niet voor een variable ' "". ' en achter een variable ' ."" ' te doen...
$errorr1 = upload($_FILES['foto1']['tmp_name'],'images/advertenties/',$RandomFotoName_1,400,400);
$errorr2 = upload($_FILES['foto2']['tmp_name'],'images/advertenties/',$RandomFotoName_2,400,400);
$errorr3 = upload($_FILES['foto3']['tmp_name'],'images/advertenties/',$RandomFotoName_3,400,400);
if($errorr1[0] == false && $errorr2 == false && $errorr3 == false){
$error .= $errorr1[2]."|Afbeeldingnaam: ".$_FILES['foto1']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_1;
$error .= $errorr2[2]."|Afbeeldingnaam: ".$_FILES['foto2']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_2;
$error .= $errorr3[2]."|Afbeeldingnaam: ".$_FILES['foto3']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_3;
$_POST['actie'] = "Stap 2";
}
else{
//Er was wel een error, dus hier zou een of andere error afhandeling moeten komen...
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door SilverWolf NL
En je moet er 3 uploaden?
Als je er maar 2 upload dan controlleert hij niks?
of lees ik dat nu verkeerd.
Voor de rest echt fantastisch dat je me ook ff uitlegt van die '.'!
Ben erg dankbaar voor je reactie!
JOni schreef op 08.11.2009 14:17:
Maar nu upload hij toch alsnog eerst de foto's?
En je moet er 3 uploaden?
Als je er maar 2 upload dan controlleert hij niks?
of lees ik dat nu verkeerd.
Voor de rest echt fantastisch dat je me ook ff uitlegt van die '.'!
Ben erg dankbaar voor je reactie!
En je moet er 3 uploaden?
Als je er maar 2 upload dan controlleert hij niks?
of lees ik dat nu verkeerd.
Voor de rest echt fantastisch dat je me ook ff uitlegt van die '.'!
Ben erg dankbaar voor je reactie!
Jah, je hebt gelijk, ff niet op gelet. De volgende controleerd voor elke file of hij leeg is, dan gaat hij pas uploaden, en als een van de uploads mislukt verwijderd hij alle files die eventueel geupload zijn. als er iets mee mis is, laat het weten ;)
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
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
<?PHP
if(!empty($_FILES['foto1']['name'])||!empty($_FILES['foto2']['name'])||!empty($_FILES['foto3']['name'])){
include('php/imagehandler.inc.php');
$ext1 = explode(".", $_FILES['foto1']['name']);
$ext2 = explode(".", $_FILES['foto2']['name']);
$ext3 = explode(".", $_FILES['foto3']['name']);
// je hield hier geen rekening met het feit dat files ook vakanie.foto.jpg kunnen heten, en dan pakt hij 'foto' als extensie!
$cnt1=count($ext1)-1;
$cnt2=count($ext2)-1;
$cnt3=count($ext3)-1;
$RandomFotoName_1 = $_POST['randomcode']."_1.".$ext1[$cnt1];
$RandomFotoName_2 = $_POST['randomcode']."_2.".$ext2[$cnt2];
$RandomFotoName_3 = $_POST['randomcode']."_3.".$ext3[$cnt3];
if(!empty($_FILES['foto1']['name'])){
$errorr1 = upload($_FILES['foto1']['tmp_name'],'images/advertenties/',$RandomFotoName_1,400,400);
$error .= $errorr1[2]."|Afbeeldingnaam: ".$_FILES['foto1']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_1;
}
else{
$errorr1[0]=false;
}
if(!empty($_FILES['foto2']['name'])){
$errorr2 = upload($_FILES['foto2']['tmp_name'],'images/advertenties/',$RandomFotoName_2,400,400);
$error .= $errorr2[2]."|Afbeeldingnaam: ".$_FILES['foto2']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_2;
}
else{
$errorr2[0]=false;
}
if(!empty($_FILES['foto3']['name'])){
$errorr3 = upload($_FILES['foto3']['tmp_name'],'images/advertenties/',$RandomFotoName_3,400,400);
$error .= $errorr3[2]."|Afbeeldingnaam: ".$_FILES['foto3']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_3;
}
else{
$errorr3[0]=false;
}
if($errorr1[0] == false && $errorr2[0] == false && $errorr3[0] == false){
$_POST['actie'] = "Stap 2";
}
else{
$path="images/advertenties/"; //pad waar de afbeeldingen staan (ik denk dat het deze is, maar moet je zelf ff goedzetten!)
if(!unlink($path.$RandomFotoName_1)||!unlink($path.$RandomFotoName_2)||!unlink($path.$RandomFotoName_3){
//Het verwijderen van een van de files is mislukt, waarschijnlijk heb je dan geen rechten om iets te schrijven/verwijderen... gebruik daarvoor chmod("./",0755); om je rechten te geven. dit moet je host natuurlijk wel ondersteunen ;)
}
else{
//De files zijn hier verwijderd, hier moet dan nog een error afhandeling volgen
}
}
}//hierna de else, daarin kom je pas als je geen van de 3 files hebt geupload...
?>
if(!empty($_FILES['foto1']['name'])||!empty($_FILES['foto2']['name'])||!empty($_FILES['foto3']['name'])){
include('php/imagehandler.inc.php');
$ext1 = explode(".", $_FILES['foto1']['name']);
$ext2 = explode(".", $_FILES['foto2']['name']);
$ext3 = explode(".", $_FILES['foto3']['name']);
// je hield hier geen rekening met het feit dat files ook vakanie.foto.jpg kunnen heten, en dan pakt hij 'foto' als extensie!
$cnt1=count($ext1)-1;
$cnt2=count($ext2)-1;
$cnt3=count($ext3)-1;
$RandomFotoName_1 = $_POST['randomcode']."_1.".$ext1[$cnt1];
$RandomFotoName_2 = $_POST['randomcode']."_2.".$ext2[$cnt2];
$RandomFotoName_3 = $_POST['randomcode']."_3.".$ext3[$cnt3];
if(!empty($_FILES['foto1']['name'])){
$errorr1 = upload($_FILES['foto1']['tmp_name'],'images/advertenties/',$RandomFotoName_1,400,400);
$error .= $errorr1[2]."|Afbeeldingnaam: ".$_FILES['foto1']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_1;
}
else{
$errorr1[0]=false;
}
if(!empty($_FILES['foto2']['name'])){
$errorr2 = upload($_FILES['foto2']['tmp_name'],'images/advertenties/',$RandomFotoName_2,400,400);
$error .= $errorr2[2]."|Afbeeldingnaam: ".$_FILES['foto2']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_2;
}
else{
$errorr2[0]=false;
}
if(!empty($_FILES['foto3']['name'])){
$errorr3 = upload($_FILES['foto3']['tmp_name'],'images/advertenties/',$RandomFotoName_3,400,400);
$error .= $errorr3[2]."|Afbeeldingnaam: ".$_FILES['foto3']['name']."|Afbeeldingnaam nieuw: ".$RandomFotoName_3;
}
else{
$errorr3[0]=false;
}
if($errorr1[0] == false && $errorr2[0] == false && $errorr3[0] == false){
$_POST['actie'] = "Stap 2";
}
else{
$path="images/advertenties/"; //pad waar de afbeeldingen staan (ik denk dat het deze is, maar moet je zelf ff goedzetten!)
if(!unlink($path.$RandomFotoName_1)||!unlink($path.$RandomFotoName_2)||!unlink($path.$RandomFotoName_3){
//Het verwijderen van een van de files is mislukt, waarschijnlijk heb je dan geen rechten om iets te schrijven/verwijderen... gebruik daarvoor chmod("./",0755); om je rechten te geven. dit moet je host natuurlijk wel ondersteunen ;)
}
else{
//De files zijn hier verwijderd, hier moet dan nog een error afhandeling volgen
}
}
}//hierna de else, daarin kom je pas als je geen van de 3 files hebt geupload...
?>
Hij kijkt ALS alle foto's fout zijn, dan gaat ie verwijderen.
Maar het moet al als 1 van de foto's fout is. maar daar kom ik wel uit.
Echt geweldig dat je dit ff schrijft voor me, ben je echt super dankbaar..
Maar, ik zou mezelf niet zijn als ik alweer een volgend probleem had.
Het is een heel simpel dingetje, dat kan niet anders want het werkt wel, maar niet zoals ik het gebruik natuurlijk...
Ik heb een index.php
Daarin heb ik een Iframe.
In dat iframe...
heb ik dus een iframe...
Kortom:
INDEX.PHP
-------------------------
iframe(AJAX/index.php) genaamd: [upload_foto]
INDEX.PHP > IFRAME(AJAX/index.php) genaamd: [upload_foto]
--------------------------------
iframe(upload_target)
Nou heb ik het probleem dat de IFRAME(AJAX/index.php) genaamd: [upload_foto] een formulier heeft die een upload.php gooit naar de IFRAME(upload_target).
UPLOAD.PHP
---------------------------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// Edit upload location here
$destination_path = getcwd().DIRECTORY_SEPARATOR;
$result = 0;
$target_path = $destination_path . basename( $_FILES['myfile']['name']);
if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
$result = 1;
}
sleep(1);
?>
<script language="javascript" type="text/javascript">
window.top.window.stopUpload(<?php echo $result; ?>);
</script>
// Edit upload location here
$destination_path = getcwd().DIRECTORY_SEPARATOR;
$result = 0;
$target_path = $destination_path . basename( $_FILES['myfile']['name']);
if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
$result = 1;
}
sleep(1);
?>
<script language="javascript" type="text/javascript">
window.top.window.stopUpload(<?php echo $result; ?>);
</script>
Die IFRAME(upload_target) moet dus eigenlijk weer een javascript uitvoeren in de IFRAME(AJAX/index.php) genaamd: [upload_foto]
Wat is er fout aan het onderstaande (wat dus in IFRAME(upload_target) staat)
----------------------------------------------------------------------------------------
Code (php)
1
2
3
2
3
<script language="javascript" type="text/javascript">
window.top.window.stopUpload(<?php echo $result; ?>);
</script>
window.top.window.stopUpload(<?php echo $result; ?>);
</script>
Gewijzigd op 01/01/1970 01:00:00 door Joni Fleischer