Upload afbeeldingen naar server / database
Via een upload formulier wil ik graag afbeeldingen uploaden naar de server en verwerken in een database. De connectie met de database werkt, echter wil het uploaden niet lukken.
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
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
<?php
if(isset($_POST['submit'])){
// Include database config
include_once 'dbconfig.php';
// File upload config
$targetDir = "uploads/";
$allowTypes = array('jpg','png','jpeg','gif');
$statusMsg = $errorMsg = $insertValuesSQL = $errorUpload = $errorUploadType = '';
if(!empty(array_filter($_FILES['files']['name']))){
foreach($_FILES['files']['name'] as $key=>$val){
// File upload path
$fileName = basename($_FILES['files']['name'][$key]);
$targetFilePath = $targetDir . $fileName;
// Check het file type
$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
if(in_array($fileType, $allowTypes)){
// Upload file naar server
if(move_uploaded_file($_FILES["files"]["tmp_name"][$key], $targetFilePath)){
$insertValuesSQL .= "('".$fileName."', NOW()),";
}else{
$errorUpload .= $_FILES['files']['name'][$key].', ';
}
}else{
$errorUploadType .= $_FILES['files']['name'][$key].', ';
}
}
if(!empty($insertValuesSQL)){
$insertValuesSQL = trim($insertValuesSQL,',');
//file naam in database
$insert = $db->query("INSERT INTO images (file_name, uploaded_on) VALUES $insertValuesSQL");
if($insert){
$errorUpload = !empty($errorUpload)?'Upload Error: '.$errorUpload:'';
$errorUploadType = !empty($errorUploadType)?'File Type Error: '.$errorUploadType:'';
$errorMsg = !empty($errorUpload)?'<br/>'.$errorUpload.'<br/>'.$errorUploadType:'<br/>'.$errorUploadType;
$statusMsg = "Files are uploaded successfully.".$errorMsg;
}else{
$statusMsg = "Sorry, there was an error uploading your file.";
}
}
}else{
$statusMsg = 'Please select a file to upload.';
}
// Display status bericht
echo $statusMsg;
}
?>
if(isset($_POST['submit'])){
// Include database config
include_once 'dbconfig.php';
// File upload config
$targetDir = "uploads/";
$allowTypes = array('jpg','png','jpeg','gif');
$statusMsg = $errorMsg = $insertValuesSQL = $errorUpload = $errorUploadType = '';
if(!empty(array_filter($_FILES['files']['name']))){
foreach($_FILES['files']['name'] as $key=>$val){
// File upload path
$fileName = basename($_FILES['files']['name'][$key]);
$targetFilePath = $targetDir . $fileName;
// Check het file type
$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
if(in_array($fileType, $allowTypes)){
// Upload file naar server
if(move_uploaded_file($_FILES["files"]["tmp_name"][$key], $targetFilePath)){
$insertValuesSQL .= "('".$fileName."', NOW()),";
}else{
$errorUpload .= $_FILES['files']['name'][$key].', ';
}
}else{
$errorUploadType .= $_FILES['files']['name'][$key].', ';
}
}
if(!empty($insertValuesSQL)){
$insertValuesSQL = trim($insertValuesSQL,',');
//file naam in database
$insert = $db->query("INSERT INTO images (file_name, uploaded_on) VALUES $insertValuesSQL");
if($insert){
$errorUpload = !empty($errorUpload)?'Upload Error: '.$errorUpload:'';
$errorUploadType = !empty($errorUploadType)?'File Type Error: '.$errorUploadType:'';
$errorMsg = !empty($errorUpload)?'<br/>'.$errorUpload.'<br/>'.$errorUploadType:'<br/>'.$errorUploadType;
$statusMsg = "Files are uploaded successfully.".$errorMsg;
}else{
$statusMsg = "Sorry, there was an error uploading your file.";
}
}
}else{
$statusMsg = 'Please select a file to upload.';
}
// Display status bericht
echo $statusMsg;
}
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<form action="" method="post" enctype="multipart/form-data">
Select Image Files to Upload:
<input type="file" name="files[]" multiple>
<input class="upload-btn" type="submit" name="submit" value="UPLOAD">
</form>
Select Image Files to Upload:
<input type="file" name="files[]" multiple>
<input class="upload-btn" type="submit" name="submit" value="UPLOAD">
</form>
Ik krijg ook geen succesmelding of error terug, alleen er geen afbeeldingen zijn geselecteerd krijg ik netjes een foutmelding.
Zie ik iets over het hoofd, wie oo wie kan mij helpen?
Gr. Bryan
Gewijzigd op 18/08/2018 20:39:44 door Bryan De Baar
Als ik een jpg, png, jpeg of gif pak dan geenft deze niets aan, pak ik een foutief bestand dan krijg ik als output: array
Waarom gebruik je geen kant en klare class, zoals de Uploadclass van verot.net?
De php code heb ik in een aparte file gezet. Vervolgens heb ik in het form element bij action de link naar de php file gezet.
Nu werk het wel, maar word je ook gelijk naar de php geleid en krijg je slechts de echo terug, terwijl ik dit op de upload pagina wil hebben.
Wat is het verschil dat de php code niet op de zelfde pagina werkt? Dit zou toch normaal wel moeten gaan?
Het zou precies hetzelfde moeten werken, lijkt mij.
Deze pagina word geinclude in de indexpagina, zou het zijn dat dit mis gaat en hier een aparte pagina voor moet aanmaken?
Waar loopt het proces vast? Of doorloopt die wel alles, maar gebeurt er niets.
Met een paar simpele echo's kun je dat eenvoudig testen.
Mij is hier altijd gezegd dat je beter
kunt gebruiken dan
Gewijzigd op 19/08/2018 11:27:11 door Obelix Idefix
En wat @Ariën zegt, hoe luidt de error status van elk van de uploads?
Ik hoop ook niet dat je in een publieke directory aan het uploaden bent?
Waarschijnlijk bestaat het bestand $targetFilePath op regel 18 ook nog niet, want dat is de locatie waar je het bestand naar verplaatst op regel 21?
Je zou in principe gewoon de extentie uit de name kunnen vissen, maar een extentie hoeft niet per definitie representatief te zijn voor het bestandstype. Je kunt een tekstbestand prima opslaan als (met extentie) jpg en andersom.