| Autor | Zpráva | ||
|---|---|---|---|
| Luky Profil |
Zdravím,
zkouším vytvořit aplikaci, která uživateli umožní nahrát soubor (na WEDOS disk) a následně ten soubor třeba stáhnout. Upload souborů se mi povedl, ale se stahováním mám problém. Má to fungovat tak, že každý uploadovaný soubor má vygenerovaný svůj klíč, a pokud tento klíč zadám do URL (domena.cz/v/4G8r), tak by se mělo zjistit jaký soubor se bude stahovat a následně spustit stahování. Problém mám právě ve spuštění toho stahování. <?php // FTP connect $fileFrom = '4G8r.jpeg'; $fileTo = 'nazev-souboru.jpeg'; $ftpObj->downloadFile($fileFrom, $fileTo); // zde by měl být header ?> Soubor se sice stáhne, ale pouze do adresáře webu. Nevím jak správně nastavit header tak, aby se uživateli spustilo stahování. Napadá mě možnost: soubor z WEDOS disku stáhnout do adresáře webu, pak ho nabídnout uživateli, a následně ho zase smazat. |
||
| mzk Profil * |
#2 · Zasláno: 16. 2. 2013, 11:59:26
Luky:
někde jsem četl, že časem bude možnost generování dočasnýho odkazu na stažení souboru přímo z Wdisku (bude to někde na stránkách, nechce se mi to ale hledat :-D) podle mě bude záležet co je to za soubory (hlavně na velikosti), teoreticky by snad mělo jít ty soubory načítat jen do proměnné a následně posílat prohlížeči.. pokud to budou obrázky, tak ty bys teoreticky nemusel ani tahat na disk a pak zpět (prostuduj si ale radši pořádně podmínky služby hostingu) ohledně kódu se pak můžeš inspirovat scriptem na stahování - záleží jak se to rozhodneš řešit.. |
||
| Luky Profil |
Už se mi to povedlo někde odkoukat tak aby se soubory nemuseli ukládat do adresáře webu a rovnou se vypsal a stáhnul.
Mám tento kód, který mě na localhostu funguje (obrázek se v pořádku stáhne). Na webhostingu (WEDOS) se soubor sice stáhne, ale nezobrazí se (Windows prohlížeč fotografií: ...formát obrázku není podporovaný nebo nemáte aktualizovaný prohlížeč fotografií - obrázek se stáhne normálně s příponou). Od originálu se ani moc neliší má jen asi o tisíc bajtů méně ;) download.php <?php
$fname = "vbHN.png";
$conn = ftp_connect("0000.s00.wedos.net");
if(ftp_login($conn, "s0000", "password"))
{
if(ftp_chdir($conn, "Slozka/adresar"))
{
$th = fopen('php://temp', 'r+');
if(ftp_fget($conn, $th, $fname, FTP_ASCII, 0))
{
rewind($th);
$data = stream_get_contents($th);
}
}
}
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header("Content-Disposition: attachment; filename=$fname");
echo $data;
exit; |
||
| mzk Profil * |
#4 · Zasláno: 16. 2. 2013, 15:16:17
Luky:
„if(ftp_fget($conn, $th, $fname, FTP_ASCII, 0))“ if(ftp_fget($conn, $th, $fname, FTP_BINARY, 0)) |
||
| Luky Profil |
#5 · Zasláno: 16. 2. 2013, 17:56:38
Děkuji mnohokrát, už to dělá co má :)
|
||
|
Časová prodleva: 14 let
|
|||
0