phpgroupware-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Phpgroupware-users] VFS and M$ issues


From: Chris Weiss
Subject: RE: [Phpgroupware-users] VFS and M$ issues
Date: Tue, 16 Dec 2003 19:55:52 +0000

I must has missread that, i thought it worked if you copied the uploaded file
to another location.  I haven't experienced any corruption of MS Office docs
on any of my servers, apache 1.3.x and php 4.0.6 to 4.3.3 using IE 5.5 and 6
and all Mozilla versions.

Don Graver (dgraver) (address@hidden) wrote:
>
> Thanks Chris, but I think something is still going on with the VFS b/c
> if I take a file and put in a web accessible directory... then I can get
> it without problems.  However, when I upload it via the VFS, then copy
> (cp) the file to the same web accessible directory with the same
> permissions (644) as the original file, then I can't access it.  Does
> VFS actually change permissions within the file?  Thanks again for all
> the help.
>
> -- Don Graver
>
>
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden
> On Behalf Of Chris Weiss
> Sent: Tuesday, December 16, 2003 6:45 PM
> To: address@hidden
> Subject: Re: [Phpgroupware-users] VFS and M$ issues
>
>
> the problem is MS's.  ms office products simple do not like
> accessing an office document via a dynamic url as phpgw does.
> They want to login to the remote machine and try to get
> read/write access to the doc and can't even get read only
> because they won't carry over the session from IE or mozilla
> (people actually still use the Netscape brand?).
>
> I haven't had a a problem with pdf's so I don't know the issue there.
>
> you're not doing anything wrong, microsoft is.
>
> Don Graver (dgraver) (address@hidden) wrote:
> >
> > I am hoping somone with VFS knowledge can help me out on this
> one...or
> > M$ knowledge.  First of all, I added the ability for users to attach
> > files to calendar events, so that other users can just click on the
> > attachment and the file displays/saves on their computer.  Everything
> > seems to work fine with updating the phpgw_vfs table, displaying the
> > links to the files themselves, even removing them.  However... When a
> > user on a Microsoft 2000 (haven't tested other versions) machine
> > clicks on the link and it tries to open an Excel file it fails with
> > the following error "Filename.xls cannot be accessed. The file may be
> > read-only or you may be trying to access a read-only
> location. Or, the
> > server document is stored on may not be responding.". If a user tries
> > to open a .pdf file he just gets an image displayed on the web
> > browser. If a user tries to open a Powerpoint file he gets
> "Powerpoint
> > cannot open the type of file represented by D:/...../Filename.ppt".
> >
> > .txt, .doc, .csv, and image files seem to work just fine with no
> > problems.
> >
> > Now, I have tested to make sure that it is not just the way I stream
> > the file to the user by copying the files directly from there source
> > (RELATIVE_ROOT) to another web accessible spot on the server
> and tried
> > accessing them that way, but get the same errors.  I have
> even checked
> > to make sure that my attach_file function is not corrupting the data
> > by comparing the data string before and after to make sure they are
> > equal. To make things even more confusing, all my Linux boxes have
> > absolutely no problem opening up these files using OpenOffice...so I
> > am at a loss...and still hating M$.  Anyone else ever heard
> of this or
> > seen this??
> >
> > The gory details:
> > All attached files have uog+rw permissions...with wwwrun as the owner
> > and nogroup as the group. The machine is a Suse 8.2, and running
> > mysql, with php4, and phpgw 0.9.14.512.
> >
> > Here is what I do:
> > /calendar/inc/class.bocalendar.inc.php
> >
> >      $this->attach_file('calendar',$tmp_event['id'],$tmp_file);
> >
> > $tmp_file looks like this:
> > # Array:
> > Name - BCS.xls
> > Type - application/excel
> > tmp_name - /tmp/phpaGAwre
> > Size  - 22528
> >
> >
> >
> > And here is my vfs->attach_file function (copied and pasted so some
> > lines have an extra ''):
> >                 function attach_file($app,$id,$file,$comment='')
> >                 {
> >                         if ($this->debug)
> >                         {
> >                                 echo "<p>attach_file: app='$app',
> > id='$id', tmp_name='$file[tmp_name]', name='$file[name]',
> > size='$file[size]', type='$file[ty pe]', path='$file[path]',
> > ip='$file[ip]', comment='$comment'</p>n";
> >                         }
> >                         // create the root for attached files in
> > calendar, if it does not exists
> >                         if (!($this->vfs->file_exists(array(
> >
> 'string'=>
> > $this->vfs_basedir,
> >
> > 'relatives'=>array(RELATIVE_ROOT)))))
> >                         {
> >                                 $this->vfs->override_acl = 1;
> >                                 $this->vfs->mkdir(array(
> >                                                         'string'=>
> > $this->vfs_basedir,
> >
> > 'relatives'=>array(RELATIVE_ROOT)));
> >                                 $this->vfs->override_acl = 0;
> >                         }
> >
> >                         $dir=$this->vfs_path($app);
> >                         if (!($this->vfs->file_exists(array(
> >
> 'string'=>
> > $dir,
> >
> > 'relatives'=>array(RELATIVE_ROOT)))))
> >                         {
> >                                 $this->vfs->override_acl = 1;
> >                                 $this->vfs->mkdir(array(
> >                                                         'string'=>
> > $dir,
> >
> > 'relatives'=>array(RELATIVE_ROOT)));
> >                                 $this->vfs->override_acl = 0;
> >                         }
> >                         $dir=$this->vfs_path($app,$id);
> >                         if (!($this->vfs->file_exists(array(
> >
> 'string'=>
> > $dir,
> >
> > 'relatives'=>array(RELATIVE_ROOT)))))
> >                         {
> >                                 $this->vfs->override_acl = 1;
> >                                 $this->vfs->mkdir(array(
> >                                                         'string'=>
> > $dir,
> >
> > 'relatives'=>array(RELATIVE_ROOT)));
> >                                 $this->vfs->override_acl = 0;
> >                         }
> >                         $fname =
> > $this->vfs_path($app,$id,$file['name']);
> >                         $tfname = '';
> >                         if (!empty($file['path']))
> >                         {
> >                                 $file['path'] =
> > str_replace('\','/',$file['path']);  // vfs uses only '/'
> >                                 @reset($this->link_pathes);
> >                                 while ((list($valid,$trans) =
> > @each($this->link_pathes)) && !$tfname)
> >                                 {  // check case-insensitive for WIN
> > etc.
> >                                         $check = $valid[0] == '' ||
> > strstr(':',$valid) ? 'eregi' : 'ereg';
> >                                         $valid2 =
> > str_replace('','/',$valid);
> >                                         //echo "<p>attach_file:
> > ereg('".$this->send_file_ips[$valid]."',
> > '$file[ip]')=".ereg($this->send_file_ips[$valid],$fil
> > e['ip'])."</p>n";
> >                                         if
> > ($check('^('.$valid2.')(.*)$',$file['path'],$parts) &&
> >
> > ereg($this->send_file_ips[$valid],$file['ip']) &&     // right IP
> >
> > $this->vfs->file_exists(array(
> >                                                           'string'=>
> > $trans.$parts[2],
> >
> > 'relatives'=>array(RELATIVE_NONE|VFS_REAL))))
> >                                         {
> >                                                 $tfname =
> > $trans.$parts[2];
> >                                         }
> >                                         //echo "<p>attach_file:
> > full_fname='$file[path]', valid2='$valid2', trans='$trans',
> > check=$check, tfname='$tfname', pa rts=(x,'$','$')</p>n";
> >                                 }
> >                                 if ($tfname &&
> > !$this->vfs->securitycheck(array( 'string'=> $tfname)))
> >                                 {
> >                                         return False; //lang('Invalid
> > filename').': '.$tfname;
> >                                 }
> >                         }
> >                         $this->vfs->override_acl = 1;
> >                         if ($tfname)    // file is local
> >                         {
> >
> > $this->vfs->symlink($tfname,$fname,array(RELATIVE_NONE|VFS_REAL,RELATI
> > VE
> > _ROOT));
> >                         }
> >                         else
> >                         {
> >                           $this->vfs->cp(array( 'from'=>
> > $file['tmp_name'],
> >                                                 'to'=>$fname,
> >
> > 'relatives'=>array(RELATIVE_NONE|VFS_REAL,RELATIVE_ROOT)));
> >                         }
> >                         $this->vfs->set_attributes (array(
> >                                                           'string' =>
> > $fname,
> >                                         'relatives'     => array
> > (RELATIVE_ROOT),
> >                                         'attributes'    => array
> > ('mime_type' => $file['type'],
> >                                                  'comment' =>
> > stripslashes ($comment),
> >
> > 'app' => $app)));
> >                         $this->vfs->override_acl = 0;
> >
> >                         $link =
> > $this->info_attached($app,$id,$file['name']);
> >                         return is_array($link) ? $link['file_id'] :
> > False;
> >                 }
> > -- Don Graver
> >
> >
> > _______________________________________________
> > Phpgroupware-users mailing list
> > address@hidden
> > http://mail.gnu.org/mailman/listinfo/phpgroupware-users
> >
>
>
>
> _______________________________________________
> Phpgroupware-users mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/phpgroupware-users
>
>
> _______________________________________________
> Phpgroupware-users mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/phpgroupware-users
>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]