/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Uploade filer til database...
Fra : Stefan Uldum Grinste~


Dato : 26-11-01 21:47

Hejsa...

Jeg har erfaret et problem med at putte en fil ind i en database...

Jeg læser filen ind i en string sådan her:
$data = addslashes(fread(fopen($binFile, "r"), filesize($binFile)));

Selvom filesize($binFile) returnerer ca. 4000 bytes, så bliver strlen($data)
kun 262 bytes.

Og det er hvad php lægger ind i databasen Og det er ikke så fedt...

Jeg her kigget i php.ini hvor der står:
upload_max_filesize = 2M

Så det burde ikke være noget problem.

Hvad kan der være i vejen?

Med venlig hilsen
Stefan



 
 
Thomas Skyt (26-11-2001)
Kommentar
Fra : Thomas Skyt


Dato : 26-11-01 21:51

Er det ren tekst eller binære data, du vil lægge op?

Hvis du tænker på ren tekst, så kan jeg give dig en lille stump kode, jeg
selv bruger, der stripper teksten for særtegn, konverterer dem til
htmlkoder og stopper det i databasen.

/Thomas

Stefan Uldum Grinsted wrote:

> Hejsa...
>
> Jeg har erfaret et problem med at putte en fil ind i en database...
>
> Jeg læser filen ind i en string sådan her:
> $data = addslashes(fread(fopen($binFile, "r"), filesize($binFile)));
>
> Selvom filesize($binFile) returnerer ca. 4000 bytes, så bliver
> strlen($data) kun 262 bytes.
>
> Og det er hvad php lægger ind i databasen Og det er ikke så fedt...
>
> Jeg her kigget i php.ini hvor der står:
> upload_max_filesize = 2M
>
> Så det burde ikke være noget problem.
>
> Hvad kan der være i vejen?
>
> Med venlig hilsen
> Stefan
>
>
>


Stefan Uldum Grinste~ (26-11-2001)
Kommentar
Fra : Stefan Uldum Grinste~


Dato : 26-11-01 21:55

Det er binær data (image/gif) for at være præcis...

Jeg har prøvet med file() funktionen og tage alle elementerne fra den
returnerede array, men det virker heller ikke.

PS. Tak for det hurtige svar :)

"Thomas Skyt" <thskyt@pc.dk> wrote in message
news:9tua1a$srq$1@sunsite.dk...
> Er det ren tekst eller binære data, du vil lægge op?
>
> Hvis du tænker på ren tekst, så kan jeg give dig en lille stump kode, jeg
> selv bruger, der stripper teksten for særtegn, konverterer dem til
> htmlkoder og stopper det i databasen.
>
> /Thomas
>
> Stefan Uldum Grinsted wrote:
>
> > Hejsa...
> >
> > Jeg har erfaret et problem med at putte en fil ind i en database...
> >
> > Jeg læser filen ind i en string sådan her:
> > $data = addslashes(fread(fopen($binFile, "r"), filesize($binFile)));
> >
> > Selvom filesize($binFile) returnerer ca. 4000 bytes, så bliver
> > strlen($data) kun 262 bytes.
> >
> > Og det er hvad php lægger ind i databasen Og det er ikke så fedt...
> >
> > Jeg her kigget i php.ini hvor der står:
> > upload_max_filesize = 2M
> >
> > Så det burde ikke være noget problem.
> >
> > Hvad kan der være i vejen?
> >
> > Med venlig hilsen
> > Stefan
> >
> >
> >
>



Tonni Aagesen (26-11-2001)
Kommentar
Fra : Tonni Aagesen


Dato : 26-11-01 23:17

"Stefan Uldum Grinsted" <stefan@picadelli.dk> skrev i en meddelelse
news:QSxM7.7832$TN1.879472@news000.worldonline.dk...

> Jeg har erfaret et problem med at putte en fil ind i en database...
[klip]

Hvis du ikke specifikt har behov for at gemme binære data i din database
(hvad der, så vidt jeg ved, sløver databasen), burde du måske overveje at
uploade billederne til en mappe, og gemme stien eller bare navnet på
billederne i databasen i stedet for.

Der findes et udmærket eksempel her:
http://myplace.dk/php-faq/?keyword=upload


--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk





Stefan Uldum Grinste~ (26-11-2001)
Kommentar
Fra : Stefan Uldum Grinste~


Dato : 26-11-01 23:25

Well...

Jeg fandt selv en løsning på mit problem...

Jeg skulle blot tilføje et "b" parameter til min fread() sætning:
$data = addslashes(fread(fopen($binFile, "rb"), filesize($binFile)));
Dette er vist kun nødvendigt hvis man kører PHP på en Windows maskine...

Men tak for hjælpen...

Hvad var det du sagde med at binær data sløver databasen?

"Stefan Uldum Grinsted" <stefan@picadelli.dk> wrote in message
news:QSxM7.7832$TN1.879472@news000.worldonline.dk...
> Hejsa...
>
> Jeg har erfaret et problem med at putte en fil ind i en database...
>
> Jeg læser filen ind i en string sådan her:
> $data = addslashes(fread(fopen($binFile, "r"), filesize($binFile)));
>
> Selvom filesize($binFile) returnerer ca. 4000 bytes, så bliver
strlen($data)
> kun 262 bytes.
>
> Og det er hvad php lægger ind i databasen Og det er ikke så fedt...
>
> Jeg her kigget i php.ini hvor der står:
> upload_max_filesize = 2M
>
> Så det burde ikke være noget problem.
>
> Hvad kan der være i vejen?
>
> Med venlig hilsen
> Stefan
>
>



Tonni Aagesen (26-11-2001)
Kommentar
Fra : Tonni Aagesen


Dato : 26-11-01 23:30

"Stefan Uldum Grinsted" <stefan@picadelli.dk> skrev i en meddelelse
news:9jzM7.7965$TN1.903805@news000.worldonline.dk...

> Hvad var det du sagde med at binær data sløver databasen?

Jeg har ikke selv kørt nogle tests på det, men har altid fået at vide at det
sløver og belaster SQL-serveren markant. Måske nogen kan supplere med lidt
kontant viden om emnet, selv det så ikke helt handler om php mere

Ellers så prøv at spørge i news:dk.edb.database


--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk



Stig Johansen (27-11-2001)
Kommentar
Fra : Stig Johansen


Dato : 27-11-01 07:16

Tonni Aagesen wrote:

> "Stefan Uldum Grinsted" <stefan@picadelli.dk> skrev i en meddelelse
> news:9jzM7.7965$TN1.903805@news000.worldonline.dk...
>
>> Hvad var det du sagde med at binær data sløver databasen?
>
> Jeg har ikke selv kørt nogle tests på det, men har altid fået at vide at
> det sløver og belaster SQL-serveren markant. Måske nogen kan supplere med
> lidt kontant viden om emnet, selv det så ikke helt handler om php mere
>

Generelt sløver det ikke databasen, at der er binære data i. Disse ligger
som oftest med en reference.

Det der bliver en 'dødssynd' er, når de er inkluderet i select-sætninger
(med flere records i resultsæt).


--
Med venlig hilsen / Best regards
Stig Johansen
linux@w3data.dk

Stefan Uldum Grinste~ (27-11-2001)
Kommentar
Fra : Stefan Uldum Grinste~


Dato : 27-11-01 17:19


"Stig Johansen" <linux@w3data.dk> wrote in message
news:9tvajj$jq0$1@sunsite.dk...
> Tonni Aagesen wrote:
>
> > "Stefan Uldum Grinsted" <stefan@picadelli.dk> skrev i en meddelelse
> > news:9jzM7.7965$TN1.903805@news000.worldonline.dk...
> >
> >> Hvad var det du sagde med at binær data sløver databasen?
> >
> > Jeg har ikke selv kørt nogle tests på det, men har altid fået at vide at
> > det sløver og belaster SQL-serveren markant. Måske nogen kan supplere
med
> > lidt kontant viden om emnet, selv det så ikke helt handler om php mere

> >
>
> Generelt sløver det ikke databasen, at der er binære data i. Disse ligger
> som oftest med en reference.
>
> Det der bliver en 'dødssynd' er, når de er inkluderet i select-sætninger
> (med flere records i resultsæt).
>

Hvis man laver en select sætning, undlader man vel bare feltet med den binær
data til at generere en evt. liste. Og venter med at hente binær data til
man har en enkelt fil man skal have.

Og man kan da evt. også nedprioritere SQL-sætningen så vigtig data bliver
afviklet først.

>
> --
> Med venlig hilsen / Best regards
> Stig Johansen
> linux@w3data.dk



Stig Johansen (28-11-2001)
Kommentar
Fra : Stig Johansen


Dato : 28-11-01 05:54

Stefan Uldum Grinsted wrote:

> Hvis man laver en select sætning, undlader man vel bare feltet med den
> binær data til at generere en evt. liste. Og venter med at hente binær
> data til man har en enkelt fil man skal have.
>

Det var præcis hvad jeg mente. Desværre ser man alt for mange 'dovne', der
bruger select * ...

--
Med venlig hilsen / Best regards
Stig Johansen
linux@w3data.dk

Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408670
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste