Autor Zpráva
Tomáš Jelínek
Profil
No co člověk nečeká:
Mám jednoduchý příkaz:
echo '<a href="'.$path.$file.'" target="blank">'.$path.$file.'</a><br>';
Ten vygeneruje toto:
<a href="D:\Documents and Settings\Pictures\Iphone\IMG_0036.JPG" target="_blank">D:\Documents and Settings\Pictures\Iphone\IMG_0036.JPG</a>
No a při otevření se změní "D:\" na "d:\" ( v adresním řádku), .JPG zůstane velkými písmeny.
Vyhodí to hlášku: Firefox nemůže otevřít tuto adresu, neboť protokolu (d) není přiřazen žádný program.
Co dělám špatně?
Pokud bych chtěl také odkazem otevřít pdf, jak na to?

Díky
maks
Profil
Tomáš Jelínek:
linkuj relativně, ať nemusíš později přepisovat všechny odkazy.
Tomáš Jelínek
Profil
To bohužel nejde, protože web je umístěn jinde než soubory.
lionel messi
Profil
Tomáš Jelínek:
Pokud bych chtěl také odkazem otevřít pdf, jak na to?
To asi nepôjde, je to vec klientovho prehliadača, ako si ho nastaví.

To bohužel nejde, protože web je umístěn jinde než soubory.
Ako inde? Je na serveri, to je jasné, ale relatívne adresy fungujú aj on-line.
Tomáš Jelínek
Profil
1. Je to pro moje účely, chci aby po kliknutí na odkaz se otevřel soubor pdf, tudíž stačí dát odkaz na pdf soubor nebo je třeba ještě něco?
2. No já vím, ale já mám zdrojáky webu na na C:\...\slozka_webu a tyto soubory jsou na D:\.....\odkazovaneSoubory Pokud to tedy je, ukaž jak.
maks
Profil
Tomáš Jelínek:
pokud je web na serveru, tak na tvůj disk D pochopitelně nevidí. Nemá jak.

Pokud chceš i přesto odkazovat absolutně na soubor na disku (nevím, kde „jinde“ v rámci lokální kopie webu se mohou soubory nacházet), odkazuje se skrze protokol file:///D:...
lionel messi
Profil
Tomáš Jelínek:
C:\...\slozka_webu
Toto asi nebude adresa, kde bežia stránky on-line, jedine to môže byť na localhoste, pokiaľ si nevytvoril takýto strom adresárov na FTP, ale tomu nenasvedčujú spätné lomítka.


Aká adresárová štruktúra je na serveri?
Tomáš Jelínek
Profil
lionel messi:
Servr teď neřeš, já potřebuji odkazovat někam, kam servr nevidí.
maks:
Pak se tu objevil další problém, že při doplnění o file:/// se po kliknutí na odkaz nic nestane.
margin
Profil *
Zkus něco takového, mělo by to u tebe fungovat:
file://localhost/D:/Documents%20and%20Settings/Pictures/Iphone/IMG_0036.JPG
Tomáš Jelínek
Profil
Upraveno:
echo '<a href="file://localhost/'.str_replace(" ", "%20",$path).$file.'">'.$path.$file.'</a><br>';
Z toho vznikne
<a href="file://localhost/D:\Documents%20and%20Settings\Pictures\Iphone\IMG_0126.JPG">D:\Documents and Settings\Pictures\Iphone\IMG_0126.JPG</a>
Petr ZZZ
Profil
Reaguji na Tomáše Jelínka:
ale já mám zdrojáky webu na na C:\...\slozka_webu a tyto soubory jsou na D:\.....\odkazovaneSoubory

Tak to sjednoť. Vytvoř si třeba na D:\ složku třeba moje-stranky a v této složce dvě podsložky, nazvané třeba moje-obrazky a moje-pdf. Do složky moje-obrazky nahrej (nebo lépe asi zkopíruj) obrázkové soubory, do složky moje-pdf nahrej/zkopíruj soubory ve formátu .pdf. Do složky moje-stranky dej soubor index.html nebo index.php (nevím, jestli píšeš stránky přímo v HTML nebo je generuješ přes PHP) a další stránky (soubory) webu. Potom budeš moct na jednotlivých stránkách webu volat soubory například takto nějak:

<img src="moje-obrazky/obrazek234.jpg" alt="234">
<img src="moje-obrazky/obrazek235.jpg" alt="235">
<a href="moje-obrazky/obrazek121.jpg">obrázek číslo 121</a>
<a href="moje-pdf/pdf34.pdf">PDF číslo 34</a>

Tento postup má výhodu v tom, že až budeš později chtít web zveřejnit, jen v rootu webu vytvoříš ty stejné dvě podsložky moje-obrazky a moje-pdf a do těch nakopíruješ obrázky a soubory pdf. Do rootu zkopíruješ soubory index.html, stranka1.html a stranka2.html atd... (nebo příslušné php soubory – nevím, jak to máš).
Tomáš Jelínek
Profil
I když se to nezdá, takový začátečník opravdu nejsem i když jsem s PHP delší dobu nedělal. Tento postup má pro můj účel jistý problém.
Za 1. by musela být složka s těmi dokumenty serverovou složkou...co kdybych se potřeboval dostat i do dejme tomu zase jiné složky na C:\
2. Ten servr by neobsluhoval jen tuto funkci.
3. Toto zveřejněno nebude.
4. Spíš jde o to, že jsem byl požádán (strýcem), abych napsal něco, co mu pomůže vyhledávat dokumenty. Chtěl to přes webové rozhraní. Ostatně jsem si myslel, že to nebude zrovna vhodné.

Ale co mi opravdu vrtá hlavou je to, že vše bylo v pohodě, dokud jsem nechtěl vytvořit obyčejnej odkaz. Odkaz, směřující na adresu, kterou po vložení do adresního řádku normálně otevřu, ale za boha to přes odkaz nemohu otevřít - kliknout na to. Přikládám zdroják, který bohužel taky nefunguje (mám podezření, že tam mám blbě JavaScript).
<script>
    newWindow(var link) {
    window.open(link, "_blank", "location=yes,status=no,width=600,height=500,resizable");
    }
</script>
<?php
@$query = $_POST['query'];
$path = "D:\Documents and Settings\Pictures\Iphone\\$query";
if (!$directory = opendir($path)) {
    echo "Adresar neexistuje";
} else {
    $files = 0;
    echo '<div class="results">';
    while ($file = readdir($directory)) {

        $link = "file://" . $path . $file;
        $link = str_replace(" ", "%20", $link);
        $link = str_replace("\\", "/", $link);

        echo "<script>";
        echo 'var windowAdress="' . $link . '";';
        echo "</script>";
        echo '<a href="' . $link . '" target="_blank" onClick="newWindow(windowAdress)">' . $link . '</a><br>';
        $files ++;
    }
    echo $files == 0 ? "Nic nenalezeno." : "";
    echo '</div>';
}
?>
 
Z čehož vyleze
file://D:/Documents%20and%20Settings/Pictures/Iphone/IMG_0080.JPG

P.S.: Znovu radši připomínám, že jsem PHP delší dobu nedělal.
maks
Profil
Tomáš Jelínek:
abych napsal něco, co mu pomůže vyhledávat dokumenty
to nechápu. Není na vyhledávání dokumentů ve Windows lepší použít Windowsí vyhledávání? Přijde mi to jako drbání se...

Co si slibuješ od toho JS (ř. 20 - 23), který tam je? na otevírání do nového okna bohatě stačí target=_blank, který tam máš.

Z čehož vyleze file://D:/Documents%20and%20Settings/Pictures/Iphone/IMG_0080.JPG
A ta cesta (včetně velikosti písmen) je v pořádku? Jen ta lomítka na začátku by měla být (tuším) tři, firefox mi tam to třetí doplňuje automaticky. Když si zadáš danou URL do adresního řádku ručně, daný soubor se zobrazí? Zkus ji zadat se třemi lomítky.

Pokud je cesta správně, není důvod, proč by se (třeba i po ručním zadání adresy) obrázek nezobrazil.
Tomáš Jelínek
Profil
maks:
to nechápu. Není na vyhledávání dokumentů ve Windows lepší použít Windowsí vyhledávání? Přijde mi to jako drbání se...
Já si to nevymyslel. Ale ještě lepší je asi Google Desktop
Co si slibuješ od toho JS (ř. 20 - 23), který tam je? na otevírání do nového okna bohatě stačí target=_blank, který tam máš.
Jeden z pokusů to rozfungovat
A ta cesta (včetně velikosti písmen) je v pořádku? Jen ta lomítka na začátku by měla být (tuším) tři, firefox mi tam to třetí doplňuje automaticky. Když si zadáš danou URL do adresního řádku ručně, daný soubor se zobrazí? Zkus ji zadat se třemi lomítky.
Ano, je zcela správná. Odkaz na kliknutí nereaguje, ale když klasicky zadám cestu ručně, je to bez problému...
Petr ZZZ
Profil
Nemohla by ten problém způsobovat zpětná lomítka \? Zkoušel´s je předělat na normální lomítka /?
Tomáš Jelínek
Profil
No ale to dělám, o to se stará toto:
        $link = str_replace("\\", "/", $link);
Davex
Profil
Lokální soubor se přes odkaz na webové stránce neotevře, protože je to bezpečnostní opatření Firefoxu. Viz kb.mozillazine.org/Links_to_local_pages_do_not_work.
Tomáš Jelínek
Profil
Jak se zdá, tak nejen Firefoxu, každopádně děkuji za odpověď.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: