caricare immagini database

Bruce5000

Utente Attivo
14 Ott 2007
106
0
0
Salve, ho un form che carica immagini su un database mysql;
il nome del file, dimensione, ecc. sono ok ma non riesco a caricare
l'immagine
in un campo mediumblob. Mi potete aiutare?
Questo è il form:
HTML:
    <form action="control_panel.php" method="post" 
enctype="multipart/form-data">
   <table align="left" width="60%" cellpadding="1px" cellspacing="1" 
border="1" bordercolor="#000000">

    <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td style="text-align: right">
        <label class="etichetta">Nome del file:&nbsp;</label>      </td>
      <td colspan="2">     <input type="text" name="nome_file" size="43"> 
</td>
    </tr>
                  <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td>&nbsp;</td>
    </tr>

    <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td style="text-align: right">
        <label class="etichetta">Testo:&nbsp;</label>      </td>
      <td colspan="2">     <input type="text" name="testo" size="43"> 
</td>
    </tr>
                  <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td>&nbsp;</td>
    </tr>

       <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td style="text-align: right">
        <label class="etichetta">Link:&nbsp;</label>      </td>
      <td colspan="2">     <input type="text" name="link" size="43"> 
</td>
    </tr>
                  <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td>&nbsp;</td>
    </tr>

 <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td style="text-align: right">
        <label class="etichetta">File:&nbsp;</label>      </td>
      <td colspan="2">     <input type="file" name="uploadfile" size="30"> 
</td>
    </tr>
            <tr bordercolor="#FFFFFF" style="vertical-align: top">
      <td>&nbsp;</td>
    </tr>

    <tr bordercolor="#FFFFFF" align="right" style="vertical-align: top">
        <td width="100px">&nbsp;</td>
      <td colspan="2" align="right">
        <input type="image" src="../images/invia.png" height="22" 
width="90">     </td>
    </tr>
</table>    </form>
E questo è lo script php:
PHP:
<?php
include "config.php";

do {
  if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {
$nome_file = stripslashes($_POST['nome_file']);
$testo = stripslashes($_POST['testo']);
$link = $_POST['link'];

    // Sposto il file nella cartella da me desiderata
    if (!move_uploaded_file(stripslashes($_FILES['uploadfile']['tmp_name']), 
'files/'.stripslashes($_FILES['uploadfile']['name']))) {
      $msg =  "<script type=\"text/javascript\">
               alert(\"Errore nel caricamento del file!\")
               </script>";
    }
 //controllo del tipo del file caricato
 if($_FILES['uploadfile']['type'] == "application/msword") {
 $tipo = "DOC";
 }
 if($_FILES['uploadfile']['type'] == "image/gif") {
 $tipo = "GIF";
 }
 if(($_FILES['uploadfile']['type'] == "image/jpeg") || 
($_FILES['uploadfile']['type'] == "image/pjpeg")) {
 $tipo = "JPG";
 }
 if($_FILES['uploadfile']['type'] == "image/tiff") {
 $tipo = "TIFF";
 }
 if($_FILES['uploadfile']['type'] == "image/bmp") {
 $tipo = "BMP";
 }

 //controllo della dimensione del file caricato
 if($_FILES['uploadfile']['size'] < 1024) {
  $dimensione = $_FILES['uploadfile']['size']." b";
 }
 if(($_FILES['uploadfile']['size'] >= 1024) && 
($_FILES['uploadfile']['size'] < 1048576)) {
  $dimensione = round(($_FILES['uploadfile']['size'] / 1024), 0)." Kb";
 }
 if($_FILES['uploadfile']['size'] >= 1048576) {
  $dimensione = round(($_FILES['uploadfile']['size'] / 1048576), 0)." Mb";
   }

//inserimento del file nel database
$sql = "INSERT INTO files (file, nome_file, testo, link, mime, url_file, 
dimensione, tipo, immagine) VALUES ('".$_FILES['uploadfile']['name']."',
  '".$nome_file."', '".$testo."', '".$link."', 
'".$_FILES['uploadfile']['type']."', '', '".$dimensione."', '".$tipo."', 
'".$immagine."')";
$res = mysql_query ($sql) or die (mysql_error());

      $msg =  "<script type=\"text/javascript\">
               alert(\"File caricato con successo!\")
               </script>";


  }
} while (false);
echo $msg;
?>
 
stampati il contenuto dell'array $_FILES e vedi se ti viene inviato tutto
 
ciao
oltre a quello che ti ha detto eliox, prova anche a mettere tra $sql = "INSERT INTO..... e $res = mysql_query.....

var_dump($sql);

cosi vedi se la query è scritta giusta.
una piccola osservazione in values hai
....'".$_FILES['uploadfile']['type']."', '', '".$dimensione."',.....
per caso il campo della tabella è not null? se si non carichi
 

Discussioni simili