[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
NapísalOffline : 14.08.2009 10:52 | link na subor v databaze

Zdravím,
už nejaký čas sedím nad jedným problémom, presnoril som niekoľko fór ale funkčné riešenie som zatiaľ nenašiel. Snažím sa vytvoriť skript na stiahnutie súboru uloženého v databáze ako longblob. V súčastnosti môj kód vyzerá asi takto ale funguje len z časti.

download.php:
Kód:
<?php
session_start();
if(isset($_GET['name']))
{

include 'pripojenie_db.php';
$name=$_GET['name'];
$id=0+$_SESSION['id'];
$result = mysql_query("SELECT file FROM file WHERE name=$name and id=$id");
$file=$row[0];
header("Content-length:".filesize($file));
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=\"".$name.".txt\"");
  readfile($file);
exit;
}

?>


menu.php:
Kód:
<?php
if($_SESSION['loged']=='1')
  {
  $pom=0+$_SESSION['id'];
  $result = mysql_query("SELECT name FROM file WHERE id=$pom");
 while ($row=mysql_fetch_array($result)){
  $name=$row[0];
  ?>
  <a href="download.php?name=<?php echo $name;?>"><?php echo $name;?></a><br>
  <?php
 }
 mysql_free_result($result);
 }
?>


Tabuľka databázy má štruktúru:
id int
name varchar(20)
file longblob
id je cudzí kľúč na tabuľku používateľov a id aj name sú primárne kľúče.

V skripte menu.php vypisujem linky na všetky súbory čo má používateľ ktorého id je uložené pomocou session. V databáze sú uložené len súbory s príponou .txt čiže notepad.
Keď kliknem na tento link tak sa mi síce začne sťahovanie ale stiahnutý súbor je prázdny a veľkosť má 0b, už naozaj neviem v čom môže byť problém. Tento problém sa neprejavuje len pri súboroch txt alew skúšal som aj iné ale výsledok bol rovnaký. Prosím ak viete kde je problém prosím poraďte.


Offline

Užívateľ
Užívateľ
link na subor v databaze

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 14.08.2009 10:59 | link na subor v databaze

kde si vzal premennu $row[0] ??
skus
Kód:
$file = mysql_result($result, 0);


a co tak premennu name osetrit? :)


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 14.08.2009 11:41 | link na subor v databaze

Sorry nejak mi tam vypadol jeden riadok:

Kód:
$row=mysql_fetch_array($result);


ale ten problém je tam stále


Offline

Správca fóra
Správca fóra
link na subor v databaze

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 14.08.2009 11:56 | link na subor v databaze

pozri sa, co ti vrati filesize($file), lebo pochybujem, ze ako argument mozu byt predane binarne data...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 14.08.2009 12:02 | link na subor v databaze

Máš pravdu nevracia mi to nič. Ale ako to môžem potom predávať?


Offline

Správca fóra
Správca fóra
link na subor v databaze

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 14.08.2009 12:04 | link na subor v databaze

pri uploade si uloz do db aj velkost suboru...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 14.08.2009 12:11 | link na subor v databaze

Problém je v tom že ja tam ten súbor nedostávam uploadom ale ho tam skriptom vytváram.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 14.08.2009 12:20 | link na subor v databaze

Ale myslím že problém nieje v oznamovaní veľkosti súboru ale v samotnom vypisovaní toho súboru príkazom readfile($row[0]); alebo echo. Lebo keď som skúšal namiesto neho dať echo"hociaky text"; tak mi to v poriadku do toho súboru napísalo aj bez toho aby som nastavoval veľkosť.


Offline

Správca fóra
Správca fóra
link na subor v databaze

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 14.08.2009 12:30 | link na subor v databaze

v prvom rade si treba pozriet sql, ci tam nemas chybu (kontrola uspesneho zbehnutia by nebola odveci) - chybaju ti tam jednoduche uvodzovky okolo $name


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 14.08.2009 12:41 | link na subor v databaze

Už to mám, boli to tie úvodzovky. A nesmie sa používať funkcia readfile() lebo tá berie obsah toho súboru ako cestu a nie ako súbor, treba tam dať jednoducho echo a ide to perfektne. Fakt diky už mi z toho začínalo šibať a pritom to bola len taká drobnosť.


Offline

Skúsený užívateľ
Skúsený užívateľ
link na subor v databaze

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96 | 96
NapísalOffline : 14.08.2009 13:35 | link na subor v databaze

rozmýšlal by som nad uložením všetkých tých súborov priamo na disk, nie do db. S ukladaním súborov do DB mám nepekné skúsenosti, spôsobovalo to nehorázne problémy, napríklad časté padanie mysql.


_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 14.08.2009 14:12 | link na subor v databaze

Neviem posúdiť čo by bolo lepšie, nebudem sa hádať so skúsenejším, ale neočakávam že do tejto databázy sa budú ukladať veľmi veľké súbory, už len preto že zatiaľ to bude na freehoste a tam je kapacita pomerne dosť obmedzená. Ak by som to prenášal inde tak by sa nad tým oplatilo pouvažovať. Ale vďaka za upozornenie, v budúcnosti s tým budem rátať.


Offline

Užívateľ
Užívateľ
link na subor v databaze

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 14.08.2009 14:24 | link na subor v databaze

no ale na freehostingu to mas spravene tak, ze do tej kapacity sa ti zapocitava aj velkost DB, nie ? takze ti to moze byt srdecne jedno


_________________
Sorry za prelkepy
Offline

Skúsený užívateľ
Skúsený užívateľ
link na subor v databaze

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96 | 96
NapísalOffline : 14.08.2009 15:48 | link na subor v databaze

sevo, ešte by som ťa chcel upozorniť na jeden podstatný detail. Keď vyberáš súbor z db, očakávam, že to bude nejaký ten kilobajt naviac v pamäti. V prípade, že použiješ funkciu mysql_fetch_array, máš tam zbytočne 2x dáta, ktoré by ti stačili 1x. Použi radšej ...fetch_row alebo ...fetch_assoc


_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
link na subor v databaze

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
NapísalOffline : 15.08.2009 10:17 | link na subor v databaze

alebo mysql_result()...


_________________
Sorry za prelkepy
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 18.03.08
Prihlásený: 25.12.09
Príspevky: 29
Témy: 7 | 7
Napísal autor témyOffline : 16.08.2009 13:07 | link na subor v databaze

Fakt vďaka všetkým za užitočné rady, verím že ste pomohli aj kope iných ľudí.


 [ Príspevkov: 16 ] 


link na subor v databaze



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

I/P: 2x D-Link DSL-2741B, 1x D-Link DI524, ZyXEL ZyWALL 2 Plus, ZyXEL ZyWALL 5, TP-Link TL-SF1005D + SF1008D

v Predám

6

901

18.04.2017 18:23

castelL

V tomto fóre nie sú ďalšie neprečítané témy.

TP-Link TL -> D-LINK 2150 nefunguje internet.

v Siete

7

530

02.09.2022 18:30

4040

V tomto fóre nie sú ďalšie neprečítané témy.

prechod z TP-LINK routru na Switch D-link

v Siete

6

352

10.02.2021 17:54

phego123

V tomto fóre nie sú ďalšie neprečítané témy.

Prepojenie D-Link a TP-Link

v Siete

0

793

26.01.2012 16:43

decimus

V tomto fóre nie sú ďalšie neprečítané témy.

C++ Hlavickovy subor vs Hlavickovy subor s CPP suborom (Alebo deklaracia a definicia tried v1 alebo 2och suboroch)

v Assembler, C, C++, Pascal, Java

5

614

19.06.2017 21:16

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Databáze OC

[ Choď na stránku:Choď na stránku: 1 ... 5, 6, 7 ]

v Biosy a ladenie výkonu

187

27863

27.11.2014 5:30

blabla630

V tomto fóre nie sú ďalšie neprečítané témy.

Vyhladavanie v databaze

v Databázy

4

552

10.06.2011 10:31

general667

V tomto fóre nie sú ďalšie neprečítané témy.

hladanie v databaze

v PHP, ASP

2

769

12.03.2010 14:05

1daemon1

V tomto fóre nie sú ďalšie neprečítané témy.

Coppermine - prenos databaze

v Redakčné systémy

2

587

08.09.2007 17:57

SonnY

V tomto fóre nie sú ďalšie neprečítané témy.

kategorie v databaze

v PHP, ASP

8

627

13.03.2008 20:53

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Zmena údajov v databáze

v Technológia .NET

2

1420

03.10.2009 15:56

danciwo

V tomto fóre nie sú ďalšie neprečítané témy.

Digitaly sign databaze access ???

v Ostatné programy

0

609

02.02.2007 10:17

chenile

V tomto fóre nie sú ďalšie neprečítané témy.

Spočítanie hodnôt v databáze

v Databázy

15

3272

25.08.2009 14:40

bmatias

V tomto fóre nie sú ďalšie neprečítané témy.

Databáze OC GK ATi

[ Choď na stránku:Choď na stránku: 1, 2, 3, 4, 5 ]

v ATI/AMD grafické karty

145

24823

30.11.2017 21:47

dixi

V tomto fóre nie sú ďalšie neprečítané témy.

Vymena zaznamov v databaze

v PHP, ASP

6

616

05.11.2009 23:02

danielop

V tomto fóre nie sú ďalšie neprečítané témy.

Sifrovanie dat v databaze

v PHP, ASP

4

506

25.10.2014 19:53

chrono



© 2005 - 2024 PCforum, edited by JanoF