Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?

[es] :: PHP :: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?

[ Pregleda: 3420 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

escape::
Developer Delphi
Rijeka, Croatia

Član broj: 26382
Poruke: 65
*.net.t-com.hr.



+1 Profil

icon Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?11.11.2005. u 02:12 - pre 224 meseci
POZDRAV SVIMA!

Molim Vas da mi rješite problem download-anja zip fajlova ili općenito fajlova sa (mojeg) web sajta...trebam PHP rješenje!
Zip fajlovi se nalaze u direktoriju (mapi) a linkovi na njih u MySQL bazi.

Kako je jednostavno staviti puni URL na tražilicu GOOGLE-a, a on odmah izbaci download dialog!Da bar to mogu iz PHP skripte

Pokušao sam iz koda na puno načina ali nisam siguran kako bi trebala izgledati URL putanja do fajla ni kojom funkcijom da ga otvaram za download.Zadnji pokušaj je bio:


-------------------------------------------------------------
$path="/home/name/public_html/Programi/Asocijacija1.0.zip";

header("Content-Disposition: attachment; filename=$path");

header("Content-Description: PHP Generated Data");

echo $path;
--------------------------------------------------------------



AKO PONAVLJAM TEMU ŠALJITE LINKOVE! HVALA!

[Ovu poruku je menjao escape:: dana 11.11.2005. u 03:14 GMT+1]

[Ovu poruku je menjao escape:: dana 11.11.2005. u 11:09 GMT+1]
escape::
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.wxs.nl.



+3 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?11.11.2005. u 14:13 - pre 224 meseci
Ako niko pre veceras, onda ti saljem moje resenje koje radi vec par meseci :)

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

afwt
AF Web Team
Novi Sad/Chicago

Član broj: 8220
Poruke: 337
*.dsl.chcgil.ameritech.net.

Sajt: milos.srdjevic.net/blog


+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?11.11.2005. u 15:37 - pre 224 meseci
Bilo je vec hiljadu puta, ali ajde:

// putanja do fajla
$path="/home/name/public_html/Programi/Asocijacija1.0.zip";
// naziv fajla bez putanje je:
$filename = basename($path);

// ovde saljemo samo naziv fajla, ne ukljucujemo celu putanju
header("Content-Disposition: attachment; filename=$filename");
// ovaj red nam ni ne treba, ali ajde de
header("Content-Description: PHP Generated Data");
// forsiramo download (ako je u pitanju PDF fajl, da se ne otvori slucajno u browseru
header("Content-Type: application/octet-stream");

// ovde treba da ispisemo SADRZAJ fajla, a ne putanju do fajla
echo file_get_contents($path);

Iduci put pravac na pretragu ovog foruma i kucaj "download".
ZelenaLutrija.com - Saznajte sve o lutriji za zelenu kartu (doživotni boravak u Sjedinjenim Američkim Državama)
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?11.11.2005. u 19:34 - pre 224 meseci
Jedino bi dodao / izmenio sledece:

$filetype=mime_content_type($filename);
header("Content-Type: $filetype");

Cisto, ako ponudis kasnije i druge fajlove za download sem .zip ;)

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

escape::
Developer Delphi
Rijeka, Croatia

Član broj: 26382
Poruke: 65
*.net.t-com.hr.



+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?11.11.2005. u 23:23 - pre 224 meseci
HVALA! Ipak ima još problem jer koristim i html i php kod na istoj stranici pa javlja grešku:

Warning: Cannot modify header information - headers already sent by (output started at /home/codere......DemoProgrami/Konekcija.php on line 57

KAKO TO RJEŠITI?


DA LI POSTOJI JEDNOSTAVNIJE RJEŠENJE SA HYPERLINKOM?

<a href="http://www.coderefectory.com/Programi/Asocijacija1.0.zip" target="_blank">DOWNLOAD</a>

...ALI ONDA MI JAVLJA NEKU DRUGU GREŠKU...


Uglavnom želim ako je moguće kreirati zajedno sa rezultatima baze i linkove da čovijek može jednim klikom dobiti download programa kojeg želi.


CIJELI KOD (zajedno sa rješenjem gornjeg posta AFWT-a):

----------------------------------------------------------------------------
<html>
<head></head>
<body>

<?php

if(!$_POST['submit'])
{
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Username:<input type="text" name="username" size(30)>
Password:<input type="text" name="password" size(30)>
<input type="submit" name="submit" value="LOGIN">
</form>
<?php
}
else
{
#podaci Vašeg usera, pass i naziva mysql baze
$username=$_POST['username'];
$password=$_POST['password'];
$database="DemoProgrami";

#konekcija na bazu
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");


$query="SELECT * FROM Programi";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>POSLOVNI PROGRAMI</center></b><br><br>";

$i=0;
while ($i < $num) {

#inicijalizira varijable vrijednostima kolona baze
$id=mysql_result($result,$i,"id");
$naziv=mysql_result($result,$i,"naziv");
$verzija=mysql_result($result,$i,"verzija");
#$zip=mysql_result($result,$i,"zip");
$link=mysql_result($result,$i,"file_link");
$datum_postavljanja=mysql_result($result,$i,"datum_postavljanja");


echo "<b></b><br>Naziv: $naziv<br>Verzija: $verzija<br>Datum upload-a: $datum_postavljanja <br><br><a>$link</a><br><hr><br>";

// putanja do fajla
$path="http://www.coderefectory.com/Programi-Setup instalacije/Asocijacija_Setup1.0.zip";
// naziv fajla bez putanje je:
$filename = basename($path);
// ovde saljemo samo naziv fajla, ne ukljucujemo celu putanju
header("Content-Disposition: attachment; filename=$filename");
// ovaj red nam ni ne treba, ali ajde de
header("Content-Description: PHP Generated Data");
// forsiramo download (ako je u pitanju PDF fajl, da se ne otvori slucajno u browseru
header("Content-Type: application/octet-stream");
// ovde treba da ispisemo SADRZAJ fajla, a ne putanju do fajla
echo file_get_contents($path);

$i++;
}
}
?>
--------------------------------------------------------------------------------

[Ovu poruku je menjao escape:: dana 12.11.2005. u 00:25 GMT+1]

[Ovu poruku je menjao escape:: dana 12.11.2005. u 00:32 GMT+1]
escape::
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?12.11.2005. u 01:43 - pre 224 meseci
Ne smes da ispisujes nista na ekranu pre slanja Header-a, dakle:

echo "<b><center>POSLOVNI PROGRAMI</center></b><br><br>";

i slicne stvari nisu dozvoljene...

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

afwt
AF Web Team
Novi Sad/Chicago

Član broj: 8220
Poruke: 337
*.hsd1.il.comcast.net.

Sajt: milos.srdjevic.net/blog


+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?12.11.2005. u 21:18 - pre 224 meseci
Au....... :-(

Odakle poceti?

1. Kao sto rece SmilieBG, stranica koja treba da sadrzi onaj kod koji sam ti ja poslao ne sme da ima NI JEDAN ispis sem onog "echo" koje sam ja stavio. Dakle, samo taj jedan.

2. Ne postoji teoretska sansa da posaljes nekoliko fajlova od jednom iz jednog fajla na download. Znaci, NE DOLAZI U OBZIR da onaj kod koji sam ti ja poslao stoji unutar WHILE petlje. On mora da se izvrsi jednom, i samo jednom!
(Ne znam, jesi li video ikad da si kliknuo na jedan link, a da ti je bilo koji server ikada ponudio da sacuvas 5 fajlova od jednom? Nije, zato sto ni ne moze... :-( )


Citat:
SmilieBG: Jedino bi dodao / izmenio sledece:

$filetype=mime_content_type($filename);
header("Content-Type: $filetype");

Cisto, ako ponudis kasnije i druge fajlove za download sem .zip ;)

Poz,
Sale


Sale, covek je trazio download, a ne da ispise fajl u browseru. Sta ako u tom tvom slucaju hoce da im ponudi da sacuvaju HTML ili TXT? Pljunuce ga u browseru sa ovim tvojim kodom. Zato i treba da stoji "forsiranje downloada" sa onim octet-stream, da bi se bilo koja vrsta fajla mogla downloadovati.
ZelenaLutrija.com - Saznajte sve o lutriji za zelenu kartu (doživotni boravak u Sjedinjenim Američkim Državama)
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?13.11.2005. u 10:46 - pre 224 meseci
@afwt:
posle 'prepoznavanja' tipa fajla, samo uradis

readfile( $file );

i to siba na 'obavezni' download. Znaci ne pita te dal' hoces da otvaras u browseru, ako browser ume da otvori taj tip fajla.

Razlog za:

$filetype=mime_content_type($filename);
header("Content-Type: $filetype");

jeste da server zna sta i kako da ti posalje...

@escape:
jedino drugo sto bi mogao da uradis, da ponudis download vise fajlova odjednom, jeste da korisnik 'stiklira' fajlove koje zeli da skine, a da ih ti zatim zapakujes u zip i da mu taj zip posaljes... Druge varijante nema...

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

escape::
Developer Delphi
Rijeka, Croatia

Član broj: 26382
Poruke: 65
*.net.t-com.hr.



+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?13.11.2005. u 11:28 - pre 224 meseci
Razumio sam što mi želite reći...u pravu ste.Evo kako sam zamislio stvar ali je ne znam implementirati:

Nakon što je ukucao username i password korisnik dobiva ove rezultate iz baze:

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

Program 1
Verzija 1.0
Upload 12.11.2005

Download //tu se nalazi hyperlink

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

Program 2
Verzija 1.1
Upload 14.11.2005

Download //tu se nalazi hyperlink

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

Ne želim da korisnik odjednom dobije više fajlova za download u download diajlogu, već da u rezultatu dobije hyperlinkove od svih programa pa da može kliknuti na koji želi.






[Ovu poruku je menjao escape:: dana 13.11.2005. u 12:29 GMT+1]
escape::
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?13.11.2005. u 13:02 - pre 224 meseci
ovo ti je osnova, a ti izgradi dalje:

Code:

// HTML CODE za prikazivanje tabele
$table = "<table>
<tr>
   <td colspan = 2>-----------</td>
</tr>";
// povezivanje sa bazom
....

// query
$query = "SELECT * FROM tabela";
$do = mysql_query($query);

$path = "/var/programi/za/download";
$i = 1;
while($res = mysql_fetch_array($do))
{
$table .= "
<tr>
   <td>Program:</td>
   <td>$i</td>
</tr>
<tr>
   <td>Verzija:</td>
   <td>$do['version']</td>
</tr>
<tr>
   <td>Upload</td>
   <td>$do['upload']</td>
</tr>
<tr>
   <td colspan = 2><a href = '$path/$filename'></td>
</tr>
<tr>
   <td colspan = 2>------------</td>
</tr>";
$i++;
}

$table .= "</table>";

echo $table;



E, ovo gore ti je sa 'jednostavnim' linkovima. Ako hoces to preko ovog da radis:

header("Content-Disposition: attachment; filename=$path");

onda moras u <a href ... > da pozivas funkciju ili fajl da prosledi informacije da posalje fajl... Ali to je vec komplikovanije... I mrzi me da pisem

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

escape::
Developer Delphi
Rijeka, Croatia

Član broj: 26382
Poruke: 65
*.net.t-com.hr.



+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?13.11.2005. u 13:23 - pre 224 meseci

ODLIČNO, napredujemo
Ostaje još samo ova dilema...kako namjestiti ispravnu putanju do direktorija sa zip-fajlovima.
Kad kliknem na download javlja mi grešku i ispisuje putanju direktorija gdje se nalazi php skripta koju pokrećem....iako u URL-u nema ni govora o tom direktoriju.
Nadam se da kod dolje radi hyperlink, a ne običan lokalni link na tekuću stranicu!?
Što mislite?

-------------------------------------------------------------------------
<html>
<head></head>
<body></body>

<?php

if(!$_POST['submit'])
{
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Username:<input type="text" name="username" size(30)>
Password:<input type="text" name="password" size(30)>
<input type="submit" name="submit" value="LOGIN">
</form>
<?php
}
else
{

$username=$_POST['username'];
$password=$_POST['password'];
$database="codere_DemoProgrami";

#konekcija na bazu
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

#podatak contacts zamjeniti sa nazivom Vaše tabele
$query="SELECT * FROM Programi";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>PROGRAMI</center></b><br><br>";

$i=0;
while ($i < $num) {


$id=mysql_result($result,$i,"id");
$naziv=mysql_result($result,$i,"naziv");
$verzija=mysql_result($result,$i,"verzija");
$datum_postavljanja=mysql_result($result,$i,"datum_postavljanja");
#ovo sam napravio fixno za probu...inaće putanju čupa iz baze...
$link="http://www.coderefectory.com/Programi/Asocijacija1.0.zip";


echo "<b></b><br>Naziv: $naziv<br>Verzija:
$verzija<br>Datum upload-a: $datum_postavljanja <br><br>

<a href=$link><fontcolor='#0000FF'>DOWNLOAD</font></a><br><hr><br><br>";

$i++;
}
}
?>
-----------------------------------------------------------------------------
escape::
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?13.11.2005. u 14:56 - pre 224 meseci
ovo mi nije jasno:

"Ostaje još samo ova dilema...kako namjestiti ispravnu putanju do direktorija sa zip-fajlovima.
Kad kliknem na download javlja mi grešku i ispisuje putanju direktorija gdje se nalazi php skripta koju pokrećem....iako u URL-u nema ni govora o tom direktoriju."

Daj pravi link do stranice gde se to nalazi da vidimo?
Kako stoji zapisana putanja u bazi?
I kako je nadovezujes na link?
I gde se nalaze programi fizicki na disku?

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

setx

Član broj: 67863
Poruke: 191
*.skylogicnet.it.



Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?13.11.2005. u 17:26 - pre 224 meseci
echo $_SERVER['PATH_TRANSLATED']; // za putanju do skripte koja je pokrenuta

iz te putanje obrisi ime skripte

znaci ako dobijes

/var/www/htdocs/bla.php

obrises bla.php

i eto ti putanje (/var/www/htdocs/)

nadam se da razumes
 
Odgovor na temu

escape::
Developer Delphi
Rijeka, Croatia

Član broj: 26382
Poruke: 65
*.net.t-com.hr.



+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?14.11.2005. u 00:47 - pre 224 meseci
SAD RAZUMIJEM...oprostite ali php i html su mi novost...inaće radim u c++,delphi-ju...desktop aplikacije a treba mi samo ova sitnica (download)...za sada...pa mi se ne da učiti sve nego pitam Vas za instant rješenje.
Znaći postoji vjerojatno dva načina kako da se napravi download:

1) Na način da se napravi link na php skriptu u kojoj se poziva (forsira) download pomoću funkcije header()...koja ne trpi druge pozive na istoj stranici...

2) da se napravi hyperlink koji ima URL putanju do fajla na sajtu.

E, mene zanima ovaj drugi način jer mislim da je ostvariv.Iz gornjeg koda je vidljivo da sam napravio link koji se pojavljuje onoliko puta koliko ima rezultata dobivenih sql upitom iz baze.Znaći za svaki program kojeg držim u direktoriju "Programi" ima svoj link u bazi i najzad u rezultatu upita.Korisnik zatim bira na koji download link želi kliknuti.Izgled ispisa (rezultata) sam opisao u jednom prijašnjem postu.

Provjerio sam putanju:

http://www.coderefectory.com/Programi-Setup instalacije/Asocijacija_Setup1.0.zip

Kada je upišete u tražilicu google-a on će vam ponuditi download.E upravo to ja želim...kada se klikne na link da se dogodi ista stvar...jednostavno i efikasno...da na jednoj stranici rezulatata sql upita baze, imam nazive programa i linkove do njih...da ne trebam pisati pojedinačno skripte za download poziv svakog programa posebno.
Ne da mi se za sto programa pisat 100 skripti za pokretanje downloada...već želim download linkove u listi (na stranici) rezultata.

Ne razumijem zašto mi gornji kod (prijašnji post) ne reagira na link koji ima provjerenu URL putanju do fajla.Javlja mi grešku:

Not Found
The requested URL /Programi-Setup was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Bit je da ne želim putanju do neke php skripte koja posreduje i pokreće download već direktno pokretanje downloada hyperlinkom.
escape::
 
Odgovor na temu

escape::
Developer Delphi
Rijeka, Croatia

Član broj: 26382
Poruke: 65
*.net.t-com.hr.



+1 Profil

icon Re: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?14.11.2005. u 13:16 - pre 224 meseci
SVE JE OK!
HVALA SVIMA KOJI SU POMAGALI!

Zanemario sam činjenicu da bi PHP skripta trebala biti u direktoriju gdje su fajlovi zbog:

<form action="<?=$_SERVER['PHP_SELF']?>


Znači kod skripte je ovaj i to RADI 100%:

-----------------------------------------------------------------------------
<html>
<head></head>
<body></body>

<?php

if(!$_POST['submit'])
{
?>
<form action=<?=$_SERVER['PHP_SELF']?>" method="post">
Username:<input type="text" name="username" size(30)>
Password:<input type="text" name="password" size(30)>
<input type="submit" name="submit" value="LOGIN">
</form>
<?php
}
else
{
#login
$username=$_POST['username'];
$password=$_POST['password'];
$database="DemoProgrami";

#konekcija na bazu
mysql_connect("localhost",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

#SQL upit
$query="SELECT * FROM Programi";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>++++ POSLOVNI PROGRAMI ++++</center></b><br><br>";


$i=0;
while ($i < $num) {

#inicijalizira varijable vrijednostima kolona baze
//$id=mysql_result($result,$i,"id");
$naziv=mysql_result($result,$i,"naziv");
$verzija=mysql_result($result,$i,"verzija");
#$zip=mysql_result($result,$i,"zip");
$link=mysql_result($result,$i,"file_link");
$datum_postavljanja=mysql_result($result,$i,"datum_postavljanja");

$file = basename($link);

# prikaz rezultata baze podataka
echo "<b></b><br>Naziv: $naziv<br>Verzija: $verzija<br>Datum upload-a: $datum_postavljanja <br><br><a href=$file><font color='#0000FF'>DOWNLOAD</font></a><br><hr><br><br><br>";

$i++;
}
}
?>
------------------------------------------------------------------------------

Jednini problem mi je sada što istu skriptu kad kopiram u drugi direktorij, gdje su neki drugi fajlovi...FrontPage mi ne uspijeva tamo promjeniti status php skripte iz unchanged u changed...ne znam zašto.Dok god to ne uspijem javljat će mi grešku (prilikom kreiranja subforme unutar skripte) da skripta ne postoji na remote web site-u (iako fizički postoji).

U čemu je kvaka?Ali to je za neki drugi forum vjerojatno....









[Ovu poruku je menjao escape:: dana 14.11.2005. u 14:21 GMT+1]
escape::
 
Odgovor na temu

[es] :: PHP :: Kako DOWNLOAD-ati zip ili neki drugi tip fajla sa sajta?

[ Pregleda: 3420 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.