The problem was solved. I added a call to the exit() construct at the end of
the function and haven't had any more problems since.

I would like to thank everyone who helped me.

Cheers,

Daniel


"Daniel Silva" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Hello.
>
> I tried what you suggested and it's working alright. The problem is, that
it
> doesn't always work. I adapted your suggestion to what I needed. Instead
of
> creating a file, I made a fuction that does basically the same. All listed
> files are links that enable the user to download them.
>
> So far so good. I tested it on a couple files and it worked. But it seems
to
> fail sometimes, showing what appears to be the contents of the HTTP-Header
> and the file itself. If it's an audio file or something alike, it shows
all
> sorts of weird characters, I assume them to be the actual binary contents
of
> those files. If it's a text file, it shows the file, intact, but on the
> page.
>
> Again, I haven't been able to establish a pattern of behaviour on this. My
> thesis is that the readfile function may have something to do with this,
as
> it stores the contents of the file in the output buffer and maybe it's
> showing them.
>
> What troubles me is the fact that it doesn't have a certain behaviour,
> instead, like I said, sometimes works, and sometimes it doesn't.
>
> Daniel
>
>
>
> "Daniel Silva" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> > There's actually a function in (PHP 4 >= 4.3.0) that returns a file's
MIME
> > type.
> >
> > Here it is:
> > string mime_content_type ( string filename)
> >
> >
> > "Marek Kilimajer" <[EMAIL PROTECTED]> wrote in message
> > news:[EMAIL PROTECTED]
> > > Yes, sure, but you many times won't know the mime type and might be
> > > forced to use application/octet-stream.
> > > You can do
> > > if(dirname(realpath($user_files_dir . $_GET['filename'])) ==
> > > $user_files_dir)
> > > as a security check
> > >
> > > Daniel Silva wrote:
> > >
> > > >That is a very nice solution, the problem is, the files are stored on
> > disk,
> > > >not on the DB. I suppose it can be addapted to work with the disk,
> can't
> > it?
> > > >
> > > >Cheers,
> > > >
> > > >Daniel
> > > >
> > > >
> > > >"Marek Kilimajer" <[EMAIL PROTECTED]> wrote in message
> > > >news:[EMAIL PROTECTED]
> > > >
> > > >
> > > >>create a download php file:
> > > >>
> > > >><?php
> > > >>
> > > >>$res=mysql_query("select * from user_files where
> > > >>
> > > >>
> > > >filename='$GET['file']'");
> > > >
> > > >
> > > >>if($res && mysql_num_rows($res)) {
> > > >>    $file=mysql_fetch_assoc($res);
> > > >>    if($_GET['downaload']) {
> > > >>        header('Content-Type: application/octet-stream');
> > > >>        header('Content-disposition: attachment;
> > > >>filename='.basename($file['filename']));
> > > >>    } else {
> > > >>        header('Content-Type: '.$file['mimetype']);
> > > >>        header('Content-disposition: attachment;
> > > >>filename='.basename($file['filename']));
> > > >>    }
> > > >>    header('Content-Length: '.filesize($file['filename']));
> > > >>    readfile($file['filename']);
> > > >>} else {
> > > >>    echo 'no such file';
> > > >>}
> > > >>?>
> > > >>
> > > >>Then create a link:
> > > >><a href="file.php?filename=path/file">view</a>
> > > >><a href="file.php?filename=path/file&amp;download=1">download</a>
> > > >>
> > > >>This example assumes you have a table user_files, where you store
> > > >>uploaded files with their mime types, this is a security check
> > > >>
> > > >>Daniel Silva wrote:
> > > >>
> > > >>
> > > >>
> > > >>>Hello,
> > > >>>
> > > >>>I'm currently working on a multi-user filemanager, on which each
user
> > has
> > > >>>its space on the server and can do all the basic file operations
> we've
> > > >>>
> > > >>>
> > > >all
> > > >
> > > >
> > > >>>seen.
> > > >>>
> > > >>>I've looked all over the net and the manual, but I can't seem to
find
> > the
> > > >>>solution for what I want.
> > > >>>
> > > >>>The system I'm creating keeps all user files in a folder outside
the
> > > >>>webserver, this is to say, any folder the admin defines, such as
> > > >>>/home/john/webusers .
> > > >>>
> > > >>>The site shows all files contained in the userdir and lets him
> > manipulate
> > > >>>them. Of course, I want to let the users download their files, but
as
> > > >>>
> > > >>>
> > > >they
> > > >
> > > >
> > > >>>aren't inside the webserver's "scope", I just can't simply link to
> > them.
> > > >>>
> > > >>>Is there any way I can implement this? To download a file located
at
> X
> > > >>>directory, anywhere in the system? And taking security into
> > > >>>
> > > >>>
> > > >consideration,
> > > >
> > > >
> > > >>>of course.
> > > >>>
> > > >>>Thanks in advance,
> > > >>>
> > > >>>Daniel Silva
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >>>
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> >
> >
>
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to