Re: Deleting a file after download/upload
| From: | Shawn McKenzie | Date: | Tue, 23 Jun 2009 23:15:43 +0000 |
| Subject: | Re: Deleting a file after download/upload | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-294500@lists.php.net to get a copy of this message | ||
Parham Doustdar wrote:
> Hi there,
> I am writing a PHP FTP client for my project. I want to put a "download" option and
> an "upload"" option, but I don't know how. My problem is this:
> How can I make the server the PHP script is on delete the file after uploading it to the SFTP,
> or after the user has finished downloading it from the server the PHP script is on?
> Let me put the question this way.
> My server connects to an FTP. Then, it downloads a file from the FTP, and then sends me the
> link to that temperary file on the server. Now, when I download it from my server, my script should
> delete the file. How can I make it wait until the download of the file is finished?
> Same goes for uploading.
> Thanks!
>
Well if you write a download script, then you can delete it at the end
and it won't be deleted until after the download completes:
//Do your ftp from remote to local'/path/to/file.ext'
exec('ftp_get.sh remotefile.ext /path/to/file.ext);
//or
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_gett($conn_id, '/path/to/file.ext', $server_file, FTP_BINARY)
ftp_close($conn_id);
<?php
//send proper headers for download
readfile('/path/to/file.ext');
unlink('/path/to/file.ext');
?>
For upload, depending upon how you're doing it, a call to unlink()
shouldn't execute until your FTP is done and exited:
<?php
//User uploads file to '/path/to/file.ext'
exec('ftp_put.sh /path/to/file.ext);
//or
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_put($conn_id, $server_file, '/path/to/file.ext', FTP_BINARY)
ftp_close($conn_id);
unlink('/path/to/file.ext');
?>
--
Thanks!
-Shawn
http://www.spidean.com