Re: read smb drive

From: Date: Fri, 05 Nov 2010 16:48:10 +0000
Subject: Re: read smb drive
References: 1 2 3 4 5  Groups: php.general 
Request: Send a blank email to php-general+get-309343@lists.php.net to get a copy of this message
On 5 November 2010 16:43, Richard Quadling <rquadling@gmail.com> wrote: > On 5 November 2010 16:30, Nathan Nobbe <quickshiftin@gmail.com> wrote: >> On Fri, Nov 5, 2010 at 10:18 AM, Steve Staples <sstaples@mnsi.net> wrote: >> >>> On Fri, 2010-11-05 at 10:06 -0600, Nathan Nobbe wrote: >>> > On Fri, Nov 5, 2010 at 9:48 AM, Steve Staples <sstaples@mnsi.net> wrote: >>> > >>> > > Hey guys (and gals) >>> > > >>> > > I am writing something that needs to connect to a SMB server... can >>> this >>> > > be done easliy? >>> > > >>> > > I copied a sample code from php.net that used the system() command and >>> > > mounted the SMB to a /mnt/tmp partion, and technically, it works..... >>> the >>> > > problem is, is that mount has to be run as root... >>> > > >>> > > is there a way to put the "mount/unmount" commands into an allowed >>> > > command?   i supposed, the other problem is, is waht if this is on a >>> > > windows machine? >>> > > >>> > > i dont really want to mess with permissions too much, since this will >>> > > have to be portable from linux to windows...   any help would be >>> > > appreciated... >>> > > >>> > >>> > is there any reason the php application code has to be responsible for >>> > mounting the network drive? >>> > >>> > typically this is an os-level responsibility. >>> > >>> > -nathan >>> >>> this is true, but i am looking at mounting it, reading the contents, >>> maybe moving a file to it, or renaming a file... and then closing the >>> smb share. >>> >>> i have thought abotu making it a requirement on the users end to have >>> the directory ready for the application... but thought also about maybe >>> giving them the option to connect to it and do what it has to do, then >>> close it... >>> >>> i've been doing it the second way, but was wondering if the first was a >>> viable option or not. >> >> >> hmm, yeah im not sure if theres a clean mounting interface between windows >> and linux.  the nomenclature is different for one, and im not even sure how >> to mount a network drive programmatically under windows.  maybe someone else >> on the list does. >> >> -nathan >> > > You don't need to "mount" the share. If the share is available, then > you can access using UNC ... > > \\server\share\directory\file.ext is fine. > Or > \\xxx.xxx.xxx.xxx\share\directory\file.ext > > But watch out ... in PHP, you'll need to either use / or \\ for each \ > in the UNC path ... > > \\\\server\\share\\directory\\file.ext is fine. > Or > //xxx.xxx.xxx.xxx/share/directory/file.ext > > > If you do really need to map it, then > > net use x: \\server\share > > and > > net use x: /d > > to drop the mapping. > > But you don't need to mount the share if the server with > > Is this not the same on unix? > If you need to supply credentials to access the share, then mapping it (I think) is the only way PHP could access it ... net use x: \\server\share /user:domain\username password If you don't supply the password, the user would need to enter it at the command line. A bit difficult via the web. The syntax of this command is: NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[username@dotted domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]] NET USE {devicename | *} [password | *] /HOME NET USE [/PERSISTENT:{YES | NO}] If the device and permissions are a fixed, then I'd use the /SAVECRED option and ask the user to do the job once. Thereafter you can just ... net use x: \\server\share and no need to enter permissions as this will use the stored ones. -- Richard Quadling Twitter : EE : Zend @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

« previous php.general (#309343) next »