Foto uploaden lukt niet
Ik probreer met een javascript/jquery een foto te uploaden, maar het lukt niet. Zonder het javascript lukt het wel, de fout zit hem namelijk in het javascript maar ik kom er zelf niet meer aan uit.
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
77
78
79
80
81
82
83
84
85
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
77
78
79
80
81
82
83
84
85
html
<form method="post" name="foto" id="foto" action="uploaden.php" enctype="multipart/form-data">
<b>Afbeelding</b><br />
<input type="file" id="afbeelding" name="afbeelding"><br />
<input type="submit" name="submit" value="doen"><br />
<a href="javascript:foto();"><img src="images/terug.png" /></a>
</form>
Javascript
function foto(){
var foto_val = $("#foto").val();
var afbeelding_val = $('#afbeelding').val();
$.post('uploaden.php', { afbeelding: afbeelding_val}, function(data){
$("#chat").html(data);
});
}
php
<?php
if (!empty($_POST)) {
$locatie = "plaatjes/";
if (is_uploaded_file($_FILES['afbeelding']['tmp_name'])) {
if ($_FILES['afbeelding']['size'] > 1000000) {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het bestand is te groot.</td>
</tr>
</table>';
exit;
}
if (!eregi("((.gif|.jpg|.png|.PNG|.JPG|.GIF)$)", $_FILES['afbeelding']['name'])) {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het bestand is niet van het juiste type.</td>
</tr>
</table>';
exit;
}
$afbNaam = $_FILES['afbeelding']['name'];
$uniek = md5(rand(0,300000));
$afbNieuw = $uniek . '_' . $afbNaam;
$doelFile = $doelMap . $afbNieuw . '';
if (!move_uploaded_file($_FILES['afbeelding']['tmp_name'], $locatie . $doelFile)) {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het bestand kan niet worden verplaatst.</td>
</tr>
</table>';
exit;
}
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center">
Je plaatje is geupload.</td>
</tr>
</table>';
//header("Location: index.php?p=avatar");
} else {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het uploaden is mislukt.</td>
</tr>
</table>';
}
}
?>
<form method="post" name="foto" id="foto" action="uploaden.php" enctype="multipart/form-data">
<b>Afbeelding</b><br />
<input type="file" id="afbeelding" name="afbeelding"><br />
<input type="submit" name="submit" value="doen"><br />
<a href="javascript:foto();"><img src="images/terug.png" /></a>
</form>
Javascript
function foto(){
var foto_val = $("#foto").val();
var afbeelding_val = $('#afbeelding').val();
$.post('uploaden.php', { afbeelding: afbeelding_val}, function(data){
$("#chat").html(data);
});
}
php
<?php
if (!empty($_POST)) {
$locatie = "plaatjes/";
if (is_uploaded_file($_FILES['afbeelding']['tmp_name'])) {
if ($_FILES['afbeelding']['size'] > 1000000) {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het bestand is te groot.</td>
</tr>
</table>';
exit;
}
if (!eregi("((.gif|.jpg|.png|.PNG|.JPG|.GIF)$)", $_FILES['afbeelding']['name'])) {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het bestand is niet van het juiste type.</td>
</tr>
</table>';
exit;
}
$afbNaam = $_FILES['afbeelding']['name'];
$uniek = md5(rand(0,300000));
$afbNieuw = $uniek . '_' . $afbNaam;
$doelFile = $doelMap . $afbNieuw . '';
if (!move_uploaded_file($_FILES['afbeelding']['tmp_name'], $locatie . $doelFile)) {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het bestand kan niet worden verplaatst.</td>
</tr>
</table>';
exit;
}
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center">
Je plaatje is geupload.</td>
</tr>
</table>';
//header("Location: index.php?p=avatar");
} else {
echo'<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td width="100%" align="center" bgcolor="#FFA500">
Het uploaden is mislukt.</td>
</tr>
</table>';
}
}
?>
- Ook zie ik nergens je onLoad-functie van jQuery terug
Jquery wordt geladen, de andere functies van jquery werken wel goed. hoe kan ik enctype mee verzenden naar uploaden.php?
Code (php)
1
$( "#form" ) .attr( "enctype", "multipart/form-data" ) .attr( "encoding", "multipart/form-data" );
dit is de reden dat het niet werkt.
Ik weet niet zeker of je het ook zo kunt uploaden, anders moet je eens kijken naar een plugin. Zoiets als http://www.uploadify.com/ oid
Gebruik zoals Vincent zegt gewoon een bestaande uploadmogelijkheid, zoals uploadify.
Ga hier niet mee verder, want dit gaat gewoonweg niet werken.
Gewijzigd op 11/06/2011 15:17:33 door Arjan -
Bedankt voor de reacties, zoek ff verder;)
Zie eregi in je code staan: This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.