Avatar billede kimox Nybegynder
04. august 2003 - 12:59 Der er 17 kommentarer og
1 løsning

Billede upload til mysql

hej jeg har følgende script:
<?php

// store.php3 - by Florian Dittmer <dittmer@gmx.net>
// Example php script to demonstrate the storing of binary files into
// an sql database. More information can be found at http://www.phpbuilder.com/
?>

<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>
<?php
// code that will be executed if the form has been submitted:

if ($submit) {

    // connect to the database
    // (you may have to adjust the hostname,username or password)


require("db.php");
?>

<?php
    $tid = date("d/m Y - H:i");
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));
   
    $result=MYSQL_QUERY("INSERT INTO drukmails (description,bin_data,filename,filesize,filetypenavn,tag,email,ip,dato,ang,hjemm) ".
        "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type','$navn','$tag','$email','$_SERVER[REMOTE_ADDR]','$tid','$ang','$site')");

    $id= mysql_insert_id();
    print "<p>This file has the following Database ID: <b>$id</b>";

    MYSQL_CLOSE();

} else {

    // else show the form to submit new data:
?>
<form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
  <div align="center">Fil Beskrivelse:<br>
    <input type="text" name="form_description"  size="40">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>
    Billede:<br>
    <input type="file" name="form_data"  size="40">
  </div>
    <table border="0" cellspacing="0" cellpadding="0" width="371" height="126" class="tekst_normal">
      <tr>
        <td width=95>&nbsp;</td>
        <td colspan="2">&nbsp; </td>
      </tr>
      <tr>
        <td width="95" height="27"><b>Navn : </b></td>
        <td height="27" colspan="2"> <b>
          <input type="text" size="16" class="box" name="navn">
          </b></td>
      </tr>
      <tr>
        <td width="95"><b>Email : </b></td>
        <td colspan="2">
          <input type="text" size="16" class="box" name="email">
        </td>
      </tr>
      <tr>
        <td width="95"><b>Hjemmeside :</b></td>
        <td width="124">
          <input type="text" size="20" class="box" name="site" value="http://">
        </td>
        <td width="152"><b><i class="tekst_normal">Husk http://</i></b></td>
      </tr>
      <tr>
        <td width="95"><b>Ang. : </b></td>
        <td colspan="2"> <b>
          <input type="text" size="20" class="box" name="ang">
          </b></td>
      </tr>
      <tr>
        <td width="95"><b>Tekst :</b></td>
        <td colspan="2">
          <textarea cols="36" class="box" name="tag" rows="5"></textarea>
        </td>
      </tr>
    </table>
    <input type="submit" value="Indsend" class="submit" name="submit">
  <? mysql_close(); ?>
</form>
<div align="center">
</div>
</BODY>
</HTML>

den virker bare ikke som den skal :/.. den giver mig fejl på linje 90 (allersidste linje [</html>])
Avatar billede hmm10 Nybegynder
04. august 2003 - 13:05 #1
Skal din else ikke sluttes af?
Avatar billede cozey Nybegynder
04. august 2003 - 13:08 #2
DU mangler en }
Avatar billede kimox Nybegynder
04. august 2003 - 13:08 #3
jeg har en der måske er bedre:

<?php

// store.php3 - by Florian Dittmer <dittmer@gmx.net>
// Example php script to demonstrate the storing of binary files into
// an sql database. More information can be found at http://www.phpbuilder.com/
?>

<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>

<?php

if ($submit) {


require("db.php");
?>
<?php
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

    $result=MYSQL_QUERY("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype,navn,tag,ip,dato,email,hjemm,ang) ".
        "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type','$navn','$email','$site','$ang','$tag')");

    $id= mysql_insert_id();
    print "<p>This file has the following Database ID: <b>$id</b>";

    MYSQL_CLOSE();

} else {

    // else show the form to submit new data:
?>

    <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
   
  <p>File Description:<br>
    <input type="text" name="form_description"  size="40">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>
    File to upload/store in database:<br>
    <input type="file" name="form_data"  size="40">
  </p>
  <table border="0" cellspacing="0" cellpadding="0" width="371" height="126" class="tekst_normal">
    <tr>
      <td width="95" height="27"><b>Navn : </b></td>
      <td height="27" colspan="2"> <b>
        <input type="text" size="16" class="box" name="navn">
        </b></td>
    </tr>
    <tr>
      <td width="95"><b>Email : </b></td>
      <td colspan="2">
        <input type="text" size="16" class="box" name="email">
      </td>
    </tr>
    <tr>
      <td width="95"><b>Hjemmeside :</b></td>
      <td width="124">
        <input type="text" size="20" class="box" name="site" value="http://">
      </td>
      <td width="152"><b><i class="tekst_normal">Husk http://</i></b></td>
    </tr>
    <tr>
      <td width="95"><b>Ang. : </b></td>
      <td colspan="2"> <b>
        <input type="text" size="20" class="box" name="ang">
        </b></td>
    </tr>
    <tr>
      <td width="95"><b>Tekst :</b></td>
      <td colspan="2">
        <textarea cols="36" class="box" name="tag" rows="5"></textarea>
      </td>
    </tr>
  </table>
  <p>&nbsp; </p>
  <p><input type="submit" name="submit" value="submit">
    </form>

<?php

}

?>

</BODY>
</HTML>

her giver den mig fejl i linje 20 :)
Avatar billede kimox Nybegynder
04. august 2003 - 13:12 #4
oki og med den anden der kommer felterne frem .. men når jeg klikker submit så kommer der fejl ved linje 25

Warning: open_basedir restriction in effect. File is in wrong directory in /usr/www/vix-mix_dk/public_html/drukland/store2.php on line 25

Warning: fopen("/tmp/phpchZidY", "r") - Operation not permitted in /usr/www/vix-mix_dk/public_html/drukland/store2.php on line 25

Warning: Supplied argument is not a valid File-Handle resource in /usr/www/vix-mix_dk/public_html/drukland/store2.php on line 25
Avatar billede cozey Nybegynder
04. august 2003 - 13:14 #5
Har du husket at CHMODe mappen, så der er de rigtige rettigheder?
Avatar billede kimox Nybegynder
04. august 2003 - 13:26 #6
jamen jeg oploader til mysql database på min webserver .. og den kan jeg ikke CDmod.. men det virkede fint intel jeg smed alle de andre felter ind (navn,emial) osv osv
Avatar billede cozey Nybegynder
04. august 2003 - 13:38 #7
??? uploader du selve billederne ind i mysql'en?... er det ikke bare stien osv.?
Avatar billede cozey Nybegynder
04. august 2003 - 13:38 #8
hmm... glem det ... det er mig der sover :)
Avatar billede kimox Nybegynder
04. august 2003 - 13:39 #9
hehe oki ;D kan du hjælpe mig det her?
Avatar billede kimox Nybegynder
04. august 2003 - 19:11 #10
+med
Avatar billede kimox Nybegynder
04. august 2003 - 19:31 #11
Please en eller anden hjælp :)?
Avatar billede avminarm Juniormester
05. august 2003 - 16:03 #12
ved ikke om du kan bruge dette til noget - jeg har ikke ret god tid lige nu:

    $filename=$_FILES['pic']['tmp_name'];
   
    if(filesize($filename) > 60000){ //tjekker om størrelsen af billedet er tilladt
    header("Location: error.php?type=tobigfoto");
    exit;
    }

    if (is_uploaded_file($filename)) {
      $data = addslashes(fread(fopen($filename,"r"),filesize($filename)));
      $a=getimagesize($filename);
          $width=$a[0];
          $height=$a[1];
      $type=addslashes($_FILES['pic']['type']);

      mysql_query("UPDATE users SET billede='$data', billede_width='$width', billede_height='$height', billede_type='$type' WHERE id='".$_POST['spillerid']."'") or die (mysql_error());
      header("Location: admin.php?admin=spbr&foto=okup");
      exit;
    } else {
    header("Location: error.php?type=badfoto");
    exit;
    }
Avatar billede kimox Nybegynder
05. august 2003 - 16:13 #13
naah :///.. så skal jeg til at lave nyt osv :/ .. men hvis du engang har tid hvis du så vil kigge på mit script?  så ville jeg blive meega glad
Avatar billede kimox Nybegynder
05. august 2003 - 16:18 #14
jeg er villig til at give 60 point EKSTRA.. til den som kan få mit script til at virke perfekt:

<?php

// store.php3 - by Florian Dittmer <dittmer@gmx.net>
// Example php script to demonstrate the storing of binary files into
// an sql database. More information can be found at http://www.phpbuilder.com/
?>

<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>

<?php

if ($submit) {


require("db.php");
?>
<?php
    $data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

    $result=MYSQL_QUERY("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype,navn,tag,ip,dato,email,hjemm,ang) ".
        "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type','$navn','$email','$site','$ang','$tag')");

    $id= mysql_insert_id();
    print "<p>This file has the following Database ID: <b>$id</b>";

    MYSQL_CLOSE();

} else {

    // else show the form to submit new data:
?>

    <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
   
  <p>File Description:<br>
    <input type="text" name="form_description"  size="40">
    <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
    <br>
    File to upload/store in database:<br>
    <input type="file" name="form_data"  size="40">
  </p>
  <table border="0" cellspacing="0" cellpadding="0" width="371" height="126" class="tekst_normal">
    <tr>
      <td width="95" height="27"><b>Navn : </b></td>
      <td height="27" colspan="2"> <b>
        <input type="text" size="16" class="box" name="navn">
        </b></td>
    </tr>
    <tr>
      <td width="95"><b>Email : </b></td>
      <td colspan="2">
        <input type="text" size="16" class="box" name="email">
      </td>
    </tr>
    <tr>
      <td width="95"><b>Hjemmeside :</b></td>
      <td width="124">
        <input type="text" size="20" class="box" name="site" value="http://">
      </td>
      <td width="152"><b><i class="tekst_normal">Husk http://</i></b></td>
    </tr>
    <tr>
      <td width="95"><b>Ang. : </b></td>
      <td colspan="2"> <b>
        <input type="text" size="20" class="box" name="ang">
        </b></td>
    </tr>
    <tr>
      <td width="95"><b>Tekst :</b></td>
      <td colspan="2">
        <textarea cols="36" class="box" name="tag" rows="5"></textarea>
      </td>
    </tr>
  </table>
  <p>&nbsp; </p>
  <p><input type="submit" name="submit" value="submit">
    </form>

<?php

}

?>

</BODY>
</HTML>

efter "submit" giver den følgende fejl:

Warning: open_basedir restriction in effect. File is in wrong directory in /usr/www/vix-mix_dk/public_html/drukland/store.php on line 20

Warning: fopen("/tmp/phpbTsDiK", "r") - Operation not permitted in /usr/www/vix-mix_dk/public_html/drukland/store.php on line 20

Warning: Supplied argument is not a valid File-Handle resource in /usr/www/vix-mix_dk/public_html/drukland/store.php on line 20
Avatar billede olebole Juniormester
09. oktober 2003 - 04:50 #15
<ole>

Vil du stadig gemme dit billede binært i databasen - eller vil du uploade det og blot gemme URL'en til det?

/mvh
</bole>
Avatar billede kimox Nybegynder
09. oktober 2003 - 11:03 #16
olebole - du kan kigge lige her ;D http://www.eksperten.dk/spm/411407
Avatar billede olebole Juniormester
09. oktober 2003 - 18:14 #17
Ja, det var faktisk derfor, jeg spurgte. Nå, jeg håber, jeg har forstået dig korrekt  :)

Du skal skrive dit form-tag om til:
  <form enctype="multipart/form-data" action="<?=$_SERVER["PHP_SELF"]?>" method="post">

Dernæst skal du inkludere dette felt i formen:
  <input type="file" name="userfile">

Du skal så tilføje dette i toppen af dit script:
--------------------------------------------------------

  # Stien til din upload-folder:
    $path = "images/";
  # De file-extensions, du vil tillade:
    $allowed_exts = array( "jpg" => 1, "jpeg" => 1, "gif" => 1, "png" => 1 );
   
    $picName = $_FILES["userfile"]["name"];
    $tmpName = $_FILES["userfile"]["tmp_name"];
    if ( is_uploaded_file($tmpName) ) {
        $picName = explode( ".", $picName );
        $ext = array_pop($picName);
        if ( $allowed_exts[strtolower($ext)] ) {
            $newName = "p".md5( $_POST["navn"] ).".".$ext;
            $moveFile = move_uploaded_file( $tmpName, $path.$newName );
        }
    }
    if ( file_exists($tmpName) ) unlink( $tmpName );

---------------------------------------------------------

Så har du billedets sti liggende i '$path.$newName' - lige til at stoppe i databasen.

Du skal sætte skriverettigheder på mappen, du uploader til (i dette eksempel mappen 'images').
/mvh
Avatar billede kimox Nybegynder
17. november 2003 - 10:06 #18
-lukket-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester