Connecting Tech Pros Worldwide Forums | Help | Site Map

copy($source, $destination) not working for me

eholz1
Guest
 
Posts: n/a
#1: Jan 23 '07
Hello PHP group,

I am trying to use the copy function to copy files from one directory
to another.
This does not seem to work for me. What am I missing?

Below is the code I am using.

<?php
$filecount = 0;
$filelist[0] = '';
$idx = 0;

//define('loc1', '/usr/local/Apache2/htdocs/portfolios', true);
$path = 'testimage';
$thumb_path = 'thumbs';

$dir_handle = @opendir($path) or die("Unable to open directory
$path");

//$filename2 = $filename . '.old';
//copy($filename, $filename2);

while ($file = readdir($dir_handle))
{
$filetyp = strtolower(substr($file, -3));
if ($filetyp == 'jpg' )
{
//loc1. '/'.$path. '/' .$thumb_path . '/' .
$filelist[$idx] = $path . '/' . $file;
$thumbfile = $thumb_path . '/'. 'thumb-'. $file;

if (!@copy($file, $thumbfile)) {
echo "unable to copy file" .'<br>';
}

$idx++;
$filecount++;

}
}

closedir($dir_handle);

echo '<h2>'."counted: " . $filecount . " files.".'</h2>';

?>
I have tried to copy to the same directory as well - no luck. the
webserver has access to the folders in question. What do I need to do
to get this to work?

Thanks Again,

eholz1


Tyrone Slothrop
Guest
 
Posts: n/a
#2: Jan 23 '07

re: copy($source, $destination) not working for me


On 22 Jan 2007 20:30:05 -0800, "eholz1" <ewholz@gmail.comwrote:
Quote:
>Hello PHP group,
>
>I am trying to use the copy function to copy files from one directory
>to another.
>This does not seem to work for me. What am I missing?
>
>Below is the code I am using.
>
><?php
>$filecount = 0;
>$filelist[0] = '';
>$idx = 0;
>
> //define('loc1', '/usr/local/Apache2/htdocs/portfolios', true);
> $path = 'testimage';
> $thumb_path = 'thumbs';
>
> $dir_handle = @opendir($path) or die("Unable to open directory
>$path");
>
> //$filename2 = $filename . '.old';
//copy($filename, $filename2);
>
>while ($file = readdir($dir_handle))
{
> $filetyp = strtolower(substr($file, -3));
> if ($filetyp == 'jpg' )
{
>//loc1. '/'.$path. '/' .$thumb_path . '/' .
> $filelist[$idx] = $path . '/' . $file;
> $thumbfile = $thumb_path . '/'. 'thumb-'. $file;
>
if (!@copy($file, $thumbfile)) {
> echo "unable to copy file" .'<br>';
> }
>
> $idx++;
> $filecount++;
>
}
}
>
> closedir($dir_handle);
>
> echo '<h2>'."counted: " . $filecount . " files.".'</h2>';
>
>?>
> I have tried to copy to the same directory as well - no luck. the
>webserver has access to the folders in question. What do I need to do
>to get this to work?
>
>Thanks Again,
>
>eholz1
Permissions problem? On Apache *nix servers, PHP generally runs as
"nobody". Try to chmod 777 the directory to see if thast solves the
problem.
Tim Roberts
Guest
 
Posts: n/a
#3: Jan 23 '07

re: copy($source, $destination) not working for me


"eholz1" <ewholz@gmail.comwrote:
Quote:
>Hello PHP group,
>
>I am trying to use the copy function to copy files from one directory
>to another.
>This does not seem to work for me. What am I missing?
>
>Below is the code I am using.
>
><?php
>$filecount = 0;
>$filelist[0] = '';
>$idx = 0;
>
> //define('loc1', '/usr/local/Apache2/htdocs/portfolios', true);
> $path = 'testimage';
> $thumb_path = 'thumbs';
>
> $dir_handle = @opendir($path) or die("Unable to open directory
>$path");
>
> //$filename2 = $filename . '.old';
//copy($filename, $filename2);
>
>while ($file = readdir($dir_handle))
{
> $filetyp = strtolower(substr($file, -3));
> if ($filetyp == 'jpg' )
{
>//loc1. '/'.$path. '/' .$thumb_path . '/' .
> $filelist[$idx] = $path . '/' . $file;
> $thumbfile = $thumb_path . '/'. 'thumb-'. $file;
>
if (!@copy($file, $thumbfile)) {
> echo "unable to copy file" .'<br>';
> }
Follow this through manually. readdir returns only the names of the files
in that directory, not the whole path. If the directory "testimage"
contains a file called "xxx.jpg", your copy command will expand to:

@copy( "xxx.jpg", "thumbs/thumb-xxx.jpg" )

See the problem? "xxx.jpg" doesn't exist in the current directory. It's
inside of "testimage".

You probably want
if( !@copy( $filelist[$idx], $thumbfile )) {
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
Jerry Stuckle
Guest
 
Posts: n/a
#4: Jan 23 '07

re: copy($source, $destination) not working for me


eholz1 wrote:
Quote:
Hello PHP group,
>
I am trying to use the copy function to copy files from one directory
to another.
This does not seem to work for me. What am I missing?
>
Below is the code I am using.
>
<?php
$filecount = 0;
$filelist[0] = '';
$idx = 0;
>
//define('loc1', '/usr/local/Apache2/htdocs/portfolios', true);
$path = 'testimage';
$thumb_path = 'thumbs';
>
$dir_handle = @opendir($path) or die("Unable to open directory
$path");
>
//$filename2 = $filename . '.old';
//copy($filename, $filename2);
>
while ($file = readdir($dir_handle))
{
$filetyp = strtolower(substr($file, -3));
if ($filetyp == 'jpg' )
{
//loc1. '/'.$path. '/' .$thumb_path . '/' .
$filelist[$idx] = $path . '/' . $file;
$thumbfile = $thumb_path . '/'. 'thumb-'. $file;
>
if (!@copy($file, $thumbfile)) {
echo "unable to copy file" .'<br>';
}
>
$idx++;
$filecount++;
>
}
}
>
closedir($dir_handle);
>
echo '<h2>'."counted: " . $filecount . " files.".'</h2>';
>
?>
I have tried to copy to the same directory as well - no luck. the
webserver has access to the folders in question. What do I need to do
to get this to work?
>
Thanks Again,
>
eholz1
>
In addition, remove the '@' from the copy command and see what error you
get. It will help your troubleshooting.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
eholz1
Guest
 
Posts: n/a
#5: Jan 23 '07

re: copy($source, $destination) not working for me


Hello All,

As always the PHP group comes through! I will check all these options
out.

Thanks

eholz1
If I get the copy copying i will advise.
Thanks again,

eholz1

Jerry Stuckle wrote:
Quote:
eholz1 wrote:
Quote:
Hello PHP group,

I am trying to use the copy function to copy files from one directory
to another.
This does not seem to work for me. What am I missing?

Below is the code I am using.

<?php
$filecount = 0;
$filelist[0] = '';
$idx = 0;

//define('loc1', '/usr/local/Apache2/htdocs/portfolios', true);
$path = 'testimage';
$thumb_path = 'thumbs';

$dir_handle = @opendir($path) or die("Unable to open directory
$path");

//$filename2 = $filename . '.old';
//copy($filename, $filename2);

while ($file = readdir($dir_handle))
{
$filetyp = strtolower(substr($file, -3));
if ($filetyp == 'jpg' )
{
//loc1. '/'.$path. '/' .$thumb_path . '/' .
$filelist[$idx] = $path . '/' . $file;
$thumbfile = $thumb_path . '/'. 'thumb-'. $file;

if (!@copy($file, $thumbfile)) {
echo "unable to copy file" .'<br>';
}

$idx++;
$filecount++;

}
}

closedir($dir_handle);

echo '<h2>'."counted: " . $filecount . " files.".'</h2>';

?>
I have tried to copy to the same directory as well - no luck. the
webserver has access to the folders in question. What do I need to do
to get this to work?

Thanks Again,

eholz1
>
In addition, remove the '@' from the copy command and see what error you
get. It will help your troubleshooting.
>
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Closed Thread