IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Čtení souboru na síťovém disku

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Erik Šťastný:14.10.2016 12:35

Zdravím, potřebuju v php číst soubor na síťovém disku a za boha nemůžu najít validní způsob jak s k němu dostat.

Zkoušel jsem snad vše možné ať namapované cesty z winu...

S:/dir/dir
S:\dir\dir
S:\dir/dir

tak obecné nenamapované

//server/dir/dir
////server/dir/dir
\\server\dir\dir ...

atp. atp.

A zaboha se mi to nedaří zprovoznit, tak hádám, že v tomhle problém nebude.
Při mapování z Windows se zadává normálně jméno heslo, tak hádám, že bude problém v tom, netuší někdo co s tím? :)

 
Odpovědět
14.10.2016 12:35
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Erik Šťastný
mkub:14.10.2016 12:47

a skusil si nieco ako: protokol://ser­ver/dir"?
a navyse, ak chces pristupovat vzdialene k suborom na serveri, tak by tam musela bezat sluzba na zdielanie suborov (http/https, ftp/sftp, samba, nfs, ssh)
a takisto na serveri musi mat dany pocitac pravo na pristup k suborom a takisto aj uzivatel

 
Nahoru Odpovědět
14.10.2016 12:47
Avatar
Odpovídá na mkub
Erik Šťastný:14.10.2016 12:59

No z Windows ten disk mám namapovaný a normálně používám.

Na tom stejném PC mi běží Apache odkud na něj potřebuju přistupovat z toho php scriptu.

protokol jsem žádný nezkoušel když se ten vzdálený systém používá přímo jako jednotlivé vzdálené disky

 
Nahoru Odpovědět
14.10.2016 12:59
Avatar
NouF
Člen
Avatar
NouF:14.10.2016 15:53

vytvoř tomu ftp učet a používej FTP připojení

 
Nahoru Odpovědět
14.10.2016 15:53
Avatar
Odpovídá na NouF
Erik Šťastný:14.10.2016 15:55

Nemůžu tomu vytvořit ftp účet, jde o síťové disky v práci, které ve správě nemám :/

 
Nahoru Odpovědět
14.10.2016 15:55
Avatar
NouF
Člen
Avatar
NouF:14.10.2016 16:05

Tady jde o to, že apache má nejaké pole působnosti (nejakou šložku) ten disk máš venku. Apache může osahat jen to, co vidí. Tak uploaduj ty data do cloudu, google drive, dropbox atd.. Pak v PHP udělej script na ten cloud.

 
Nahoru Odpovědět
14.10.2016 16:05
Avatar
Odpovídá na NouF
Erik Šťastný:14.10.2016 16:19

No tak jakýkoliv lokální disk si můžu adresovat jak chci v C:\ D:\ atp. není žádný problém, nicméně síťové S:\ už problém je, takže to prostě žádným inteligentním způsobem namapovat přimo na ten disk nejde? :-O

 
Nahoru Odpovědět
14.10.2016 16:19
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:14.10.2016 16:49

A co udělat symlink pro síťový disk s: do nějaké složky na c: a přistupovat k souborům přes ni?
Asi nějak takhle v cmd (potřebuje admin práva)

mklink /d "c:\data" "\\server\dir\"

respektive pokud se musíš při připojování přihlašovat tak pracuj s už přihlášeným/při­pojeným linkem

mklink /d "c:\data" "s:"
Nahoru Odpovědět
14.10.2016 16:49
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:14.10.2016 16:59

Jo to zní celkem pěkně :) Nicméně to nic nemění na otázce, zda to teda čistě jen v php nejde?

Našel jsem na netu spoustě návodů, že namapované disky z Windows nejdou ALE, napíšete v php \\server\\dir\\dir a fungujete, tak proč mě to prostě nejde :D

 
Nahoru Odpovědět
14.10.2016 16:59
Avatar
Odpovídá na Erik Šťastný
Neaktivní uživatel:14.10.2016 17:14

Když v php napíšeš cestu \\server\dir zkusí se připojit, jenže neodesílá žádné autorizační údaje a proto se k disku vůbec nedostane. Tahle metoda samozřejmě funguje pokud jsou síťové disky sdílené bez nutnosti přihlašování jménem a heslem.
Pokud potřebuješ přístup přímo na tento disk tak existují třídy pro připojení na samba server z php, zkus mrknout na github a snad najdeš nějakou inspiraci.

Editováno 14.10.2016 17:14
Nahoru Odpovědět
14.10.2016 17:14
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Erik Šťastný:16.10.2016 22:44

Hmm díky za osvětlení! :) Mrknu co se s tím dá dělat.

 
Nahoru Odpovědět
16.10.2016 22:44
Avatar
Erik Šťastný:17.10.2016 11:46

Nakonec byl problém v tom, že se Apache spouští pod jiným System uživatelem, kde disky zkrátka nejsou namapované jako mám u sebe.

Vyřešeno tím, že jsem je namapoval v php scriptu :)

$WshNetwork = new COM("WScript.Net­work");
$WshNetwork->MapNetworkDri­ve("S:", '\\\\server\share', FALSE, 'username', 'password');

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
17.10.2016 11:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.