Image uploaden in mysql failed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bjorn Couwenberg

Bjorn Couwenberg

30/06/2010 13:11:01
Quote Anchor link
Voor een custom cms systeempje wil ik de admin simpele foto's boven items kunnen laten wijzigen.

Nu heb ik tijdelijk via phpmyadmin wat materiaal in de database geplaatst en krijg dit ook zonder problemen netjes in de pagina weergegeven.

Het uploaden is een groter probleem. Heb nu al aantal code-samples van internet bekeken maar kom steeds uit op een grote witte pagina die niks doet. Momenteel is dit mijn form:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<form enctype="multipart/form-data" action="../includes/fotouploaden.php?id=1" method="POST">
    <table>
    <tr>
    <td><img src="../../includes/fotoweergeven.php?id=1" / width="100px" height="100px" class="donkererand"></td>
    <td><input type="hidden" name="MAX_FILE_SIZE" value="30000" /><input name="imgfile" type="file" /><input type="submit" value="Send File" /></td>
    </tr>
    </table>
</form>


en dit is de inhoud van fotoweergeven.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
include ('../includes/dbverbinding.php');
$id = $_GET['id'];

          $fileName       = $_FILES[imgfile][name]; // image file name
          $tmpName     = $_FILES[imgfile][tmp_name]; // name of the temporary stored file name
          $fileSize           = $_FILES[imgfile][size]; // size of the uploaded file
          $fileType         = $_FILES[imgfile][type]; // file type
          
          $fp                    = fopen($tmpName, r); // open a file handle of the temporary file
          $imgContent  = fread($fp, filesize($tmpName)); // read the temp file
          fclose($fp); // close the file handle
 
          mysql_query("UPDATE `MIJNTABELNAAM`.`teksten` SET `foto` =$imgContent WHERE `teksten`.`id` =$id") or die(Error, query failed);
 
          echo "<br>Image successfully uploaded to database<br>";
?>


Het lijkt er op alsof de temp file niet aangemaakt wordt. Dien ik dit zelf te doen middels php of is er een ander probleem?
 
PHP hulp

PHP hulp

22/12/2024 20:03:48
 
TJVB tvb

TJVB tvb

30/06/2010 13:13:01
Quote Anchor link
Begin eens met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>

bovenaan je script.

Haal verder de variabelen buiten quotes en laat zien wat er fout gaat aan je query.
 
Bjorn Couwenberg

Bjorn Couwenberg

30/06/2010 13:18:25
Quote Anchor link
Net gedaan.. foto uploaden is nu:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

include ('../includes/dbverbinding.php');
$id = $_GET['id'];

          $fileName       = $_FILES[imgfile][name]; // image file name
          $tmpName     = $_FILES[imgfile][tmp_name]; // name of the temporary stored file name
          $fileSize           = $_FILES[imgfile][size]; // size of the uploaded file
          $fileType         = $_FILES[imgfile][type]; // file type
          
          $fp                    = fopen($tmpName, r); // open a file handle of the temporary file
          $imgContent  = fread($fp, filesize($tmpName)); // read the temp file
          fclose($fp); // close the file handle
 
          mysql_query("UPDATE MIJNTABELNAAM . teksten SET foto =$imgContent WHERE teksten. id =$id") or die(Error, query failed);
 
          echo "<br>Image successfully uploaded to database<br>";
?>


En krijg nog steeds een witte pagina terug.. zonder enige info
 
Pieter van Linschoten

Pieter van Linschoten

30/06/2010 13:56:09
Quote Anchor link
In je query:
MIJNTABELNAAM . teksten: moet MIJNTABELNAAM . daar niet weg?
teksten. id moet denk ik teksten.id zijn.
foto =$imgContent moet tussen haakjes en database proof: foto = '".mysql_real_escape_string($imgContent)."'

Daarna:

die(’Error, query failed’) kan het zijn dat je hier toevallig ' moet gebruiken ipv
Gewijzigd op 30/06/2010 14:03:47 door Pieter van Linschoten
 
Kevin van Leeuwen

Kevin van Leeuwen

30/06/2010 13:59:58
Quote Anchor link
en je gebruikt geen where in je SQL of ander een order by is misschien ook wel handig, of heb ik dat nu ?
 
Pieter van Linschoten

Pieter van Linschoten

30/06/2010 14:01:48
Quote Anchor link
Kevin, het is een update query, daar heb je geen ORDER BY.
 
Kevin van Leeuwen

Kevin van Leeuwen

30/06/2010 14:04:32
Quote Anchor link
oh ja, sorry was wat scheel aan het kijken dacht ff dat je het tonen moest.
Excuses!
Gewijzigd op 30/06/2010 14:06:13 door Kevin van Leeuwen
 
Bjorn Couwenberg

Bjorn Couwenberg

30/06/2010 14:37:50
Quote Anchor link
Pieter van Linschoten op 30/06/2010 13:56:09:
In je query:
MIJNTABELNAAM . teksten: moet MIJNTABELNAAM . daar niet weg?
teksten. id moet denk ik teksten.id zijn.
foto =$imgContent moet tussen haakjes en database proof: foto = '".mysql_real_escape_string($imgContent)."'

Daarna:

die(’Error, query failed’) kan het zijn dat je hier toevallig ' moet gebruiken ipv


Oke! het script hing op inderdaad de ` ipv de ' bij de die.
Krijg nu een hele rits errors terug.

Eigenlijk vooral use of undefined constant...
 
TJVB tvb

TJVB tvb

30/06/2010 14:40:17
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
          $fileName
       = $_FILES[imgfile][name]; // image file name
          $tmpName     = $_FILES[imgfile][tmp_name]; // name of the temporary stored file name
          $fileSize           = $_FILES[imgfile][size]; // size of the uploaded file
          $fileType         = $_FILES[imgfile][type]; // file type
?>

je hebt geen enkele string tussen quotes staan.
Vergelijk eens met het onderstaande (kijk naar de kleuren)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
          $fileName
       = $_FILES['imgfile']['name']; // image file name
          $tmpName     = $_FILES['imgfile']['tmp_name']; // name of the temporary stored file name
          $fileSize           = $_FILES['imgfile']['size']; // size of the uploaded file
          $fileType         = $_FILES['imgfile']['type']; // file type
?>
 
Bjorn Couwenberg

Bjorn Couwenberg

30/06/2010 14:52:22
Quote Anchor link
Dit had ik ondertussen ook al veranderd. De errors gaven dit immers netjes zelf aan.

Heb alle errors nu al weg weten werken. Krijg nu slechts nog een query error terug.. Tot zover dus iedereen al vast bedankt. Ga nu zelf weer even vogelen..

Als er resultaat is meldt ik het hier
 
Bjorn Couwenberg

Bjorn Couwenberg

30/06/2010 15:01:37
Quote Anchor link
Finally the script is working.

Ik zocht het probleem op de verkeerde plaats. *very ashamed*

Ik probeerde steeds een file van 31 kb te uploaden terwijl de maxsize op 30 kb stond...

Nu zijn alle problemen dus opgelost. Thanks anyway everyone
 
- SanThe -

- SanThe -

30/06/2010 15:14:48
Quote Anchor link
Maar waarom wil je de hele foto in de database zetten en niet alleen de link er naar?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.