Avatar billede koden12 Nybegynder
13. december 2003 - 01:14 Der er 23 kommentarer og
2 løsninger

en fil i databasen

Jeg vil gerne kunne gemme en fil (fx en doc fil) på min localhost. Er der nogen bestemt text eller varchar som MySql skal bruge til det ?
Hvordan ser en kode ud det kan lægge en fil ned i databasen og hvordan får jeg den evt ud igen ?

Vh
koden12
Avatar billede ztyxx Nybegynder
13. december 2003 - 01:17 #1
Avatar billede sj.netomia Nybegynder
13. december 2003 - 01:29 #2
du skal bruge feltet blob i mysql databasen.
Avatar billede koden12 Nybegynder
13. december 2003 - 12:52 #3
ztyxx send svar

VH
koden12
Avatar billede koden12 Nybegynder
13. december 2003 - 21:08 #4
Notice: Undefined variable: form_data in C:\Programmer\Apache Group\Apache2\bib\fil.php on line 16

Der er nu godt nok en variabel der ikke er erklæret , kan du hjælpe med den ?

VH
koden12
Avatar billede ztyxx Nybegynder
13. december 2003 - 21:41 #5
hvad er linie 16 mere præcis
Avatar billede koden12 Nybegynder
13. december 2003 - 22:05 #6
if ($form_data && $form_data != "none") {


Men ellers ser den go ud..

VH
koden12
Avatar billede ztyxx Nybegynder
13. december 2003 - 22:07 #7
if ($_POST["form_data"] && $_POST["form_data"] != "none") {
Avatar billede nikolajdu Nybegynder
13. december 2003 - 22:10 #8
eller...

if (isset($form_data) && $form_data != "none")
Avatar billede koden12 Nybegynder
13. december 2003 - 22:40 #9
Den nederste dur :

if (isset($form_data) && $form_data != "none")
så hvad gør vi med point ?

VH
koden12
Avatar billede ztyxx Nybegynder
13. december 2003 - 22:44 #10
du beder nikolajdu lægge et svar også
Avatar billede koden12 Nybegynder
13. december 2003 - 23:49 #11
læg et svar på nikolajdu

VH
koden12
Avatar billede koden12 Nybegynder
14. december 2003 - 00:11 #12
Notice: Undefined variable: id in C:\Programmer\Apache Group\Apache2\bib\sefil.php on line 24
Ukendt kolonne 'file_code' i tabel field list

Også her mangler der variabler ?  de skal nok kaldes med POST går jeg ud fra sådan som men plejer.
Tillad mig at sige (ikke kun til Jer her ) men generalt mangler der næsten altid variabler at blive erklæret.
Det er nok en selvfølge ? for de skrappe , men os der sidder og fedter med det er det ikke.
Mange et godt projekt at "lånt?" kode har jeg måtte opgive fordi der ikke var erklæret variabler.
Det er rigtig meget ærgeligt ..

VH
koden12
Avatar billede ztyxx Nybegynder
14. december 2003 - 11:50 #13
koden12> mange af de scripts er skrevet før de seneste versioner af php, hvor bl.a. varaibler pr. default skal være globaliserede, og som man så selv skal ændre i php.ini hvis man ikke synes om det, men efterhånden har de fleste webhoteller det som standard, hvilket jo er godt, da det højner sikkerheden i koderne :-)
Avatar billede nikolajdu Nybegynder
14. december 2003 - 12:01 #14
Og her komer jeg du :))
Avatar billede koden12 Nybegynder
14. december 2003 - 12:10 #15
Kan i også fuldføre det så filerne bliver lagt ind ?

VH
koden12
Avatar billede ztyxx Nybegynder
14. december 2003 - 12:11 #16
øhhh, det troede jeg da at de gjorde, hvad er problemet??
Avatar billede nikolajdu Nybegynder
14. december 2003 - 12:19 #17
koden12 - Hvis ikke Delf´s artikel (har nemlig selv prøvet den engang) virker så er det måske fordi webhotellet ikke understøtter upload via http???

Anyway så skal du have rettet alle variablerne :

if (isset($_POST["form_data"]) && $_POST["form_data"] != "none")
    $file_code = addslashes(fread(fopen($_POST["form_data"], "r"), filesize($form_data)));
    $connect = mysql_connect("MYSQLSERVER","USERNAME","PASSWORD");
    mysql_select_db("YOURDB",$connect);
    if (mysql_query("insert into files (file_code, file_size, file_type) values ('".$_POST["file_code"]."', '".$_POST["form_data_size"]."', '".$_POST["form_data_type"]."')")) {

//Nikolaj
Avatar billede ztyxx Nybegynder
14. december 2003 - 12:22 #18
nikolajdu> det har ikke noget at gøre med http-upload, da det jo indsættes som binære data i tabellen i databasen, men det er nok nærmere, som du også siger, variablerne der skal tilrettes
Avatar billede nikolajdu Nybegynder
14. december 2003 - 12:23 #19
ztyxx - Det har du nok ret i ;-)
Avatar billede koden12 Nybegynder
14. december 2003 - 20:34 #20
Jeg kan jo gøre hvad jeg vil på en locahhost !

men den fejler :

Notice: Undefined variable: id in C:\Programmer\Apache Group\Apache2\bib\sefil.php on line 24
Ukendt kolonne 'file_code' i tabel field list

Jeg reger med det er her :

echo '<form action='sefil.php' method="post" enctype='multipart/form-data'>';
echo 'Select file: <input type="file" name='form_data'>';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="1000000"><br>'; //Defines max_file_size of files
echo '<input type="submit">';
echo '</form>';
?>

Når den så går over på sefil.php har den ikke noget med ?

Fra sefil.php

$q = mysql_query("SELECT file_code,file_type FROM phpdata WHERE id='$id'") or die(mysql_error());
if (mysql_num_rows($q)) {
extract(mysql_fetch_array($q));

    header("Content-type: $file_type");
    echo $file_code;
} else {
    echo "404 - file not found!";
}
?> 

Men jeg har ikke testet det i har lavet endnu..

VH
koden12
Avatar billede nikolajdu Nybegynder
15. december 2003 - 00:54 #21
Ukendt kolonne 'file_code' er jo fordi du ikke har lavet dem i databasen...
Avatar billede ztyxx Nybegynder
15. december 2003 - 00:58 #22
hehe, ja du skal huske at oprette tabellen i MySQL
Avatar billede koden12 Nybegynder
15. december 2003 - 12:01 #23
Nej ! den findes skam :

file_code  longblob BINARY Ja  NULL

Men skal det ikke se sådan ud ("select $file_code,file_type osv ?

VH
koden12
Avatar billede nikolajdu Nybegynder
15. december 2003 - 12:24 #24
("select file_code,file_type
Avatar billede koden12 Nybegynder
16. december 2003 - 13:30 #25
Det virker ikke en skid !
Fandt nogle andre, de virker heller ikke ?

Koden12
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