kopieret fil fungerer ikke

Tags:    php

Hej

I forbindelse med et galleri hvor man først ser mapperne listet, scriptet kopierer så filen vis.php ind i alle mapper på listen, det virker -men når jeg forsøger at åbne den kopierede fil viser den ikke billederne jeg har prøvet at downloade den igen for at sammenligne og den er magen til originalen.
Hvis jeg lægger vis.php op manuelt fungerer alting fint..

Scriptet ser sådan ud:
<?php
$filsrc = "vis.php";


if ($mappe = opendir("galleri")){
echo "Her er alle mapper med billeder i\\n";
while (false !== ($mappenavn = readdir($mappe))){
//fjerner alle punktummer i $mappenavne - bruges til at liste navnene
$mappenavne = str_replace(".","",$mappenavn);
//Ændrer ø til %F8 i $link - bruges til link
$link = str_replace("ø","%F8",$mappenavn);
//list links til mapperne i mappen galleri, men vis ikke filer
if (is_file($mappenavn)){
$mappenavn = str_replace("$mappenavn","",$mappenavn);
echo "<a href=\\"galleri/$link/vis.php\\">$mappenavn</a><br>\\n";}
else {
echo "<a href=\\"galleri/$link/vis.php\\">$mappenavne</a><br>\\n";}
$fildst = "galleri/$mappenavn/vis.php";
//hvis vis.php eksisterer i en mappe i galleri - skriv det
if (file_exists($fildst)){
echo "filen eksisterer";}
//ellers kopier den fra roden til alle mapper i galleri
else {
copy ($filsrc,$fildst);
}
}
}
?>



2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Jeg har kigget lidt på det og ændret din kode lidt i samme omgang..

Her fungere det udemærket med at kopiere filer mm.

Må jeg se din vis.php fil?

du kan lige få den kode jeg har lavet også:

<?php

// biblioteket som skal scannes
$dir = "galleri";

// stien til filen som skal kopieres, lig den et fast sted så den ikke skal kopiere sig selv.
$src = "vis.php";

// hvis mappen eksistere
if (file_exists($dir))
{
if ($mappe = @opendir($dir))
{
echo "Her er alle mapper med billeder i:<br>\\n";
while (false !== ($mappenavn = readdir($mappe)))
{
//Ændrer ø til %F8 i $link - bruges til link
$link = str_replace("ø","%F8",$mappenavn);

// sti til filen som skal kopieres
$fildst = "". $dir ."/". $mappenavn ."/vis.php";

//list links til mapperne i mappen galleri, men vis ikke filer
if (is_dir($mappenavn) && ($mappenavn[0] != "."))
{
echo "<a href=\\"". $dir ."/". $link ."/vis.php\\">". $mappenavn ."</a>";

//hvis vis.php eksisterer i en mappe i galleri - skriv det
if (file_exists($fildst))
{
echo " - filen eksisterer<br>";
}
//ellers kopier den fra roden til alle mapper i galleri
else
{
// kopier filen
if (copy ($src,$fildst))
{
echo " - kopiere filen - Det virkede<br>";
}
else
{
echo " - kopiere filen - Det virkede ikke<br>";
}
}
}
}
}
else
{
echo "Kunne ikke åbne mappen";
}
}
else
{
echo "Mappen eksistere ikke";
}
?>



Den kode du har skrevet virker ikke hos mig..
den skriver bare "Her er alle mapper med billeder i:", den kopierer heller ikke filen vis.php.
Jeg har opdaget at når vis.php er kopieret med mit eget script kan man hverken overskrive den eller ændre rettigheder til den, ved ikke om det kan have noget med det at gøre...

vis.php koden er her, det er ikke et script jeg selv har skrevet, så jeg må indrømme ikke at forstå det hele, men det virker hvis jeg manuelt lægger det op på serveren, ligemeget hvilken mappe i mappen galleri:

<?
// SÆT VARIABLER
$imgdir = "images/"; // Mappen hvor de store billeder ligger / efter navn
$tmbdir = "thumbs/"; // Mappen hvor de små billeder skal lægges / efter navn
$tmbpref = "thumb_"; // sættes foran navnet på billederne
$maxsize = 100; // Max bredde eller højde (afhænging af billed propertioner)
$per_row = 5; // billeder pr. række i tabel
$jpgqual = 75; // kvalitet af thumbnails (0 dårligst - 100 bedst)
$gd_version = 2; // GD version installeret på serveren (1 eller 2).


// LAV THUMB
function createThumb($image,$orgWidth,$orgHeight){
global $maxsize, $tmbdir, $imgdir, $tmbpref, $jpgqual, $gd_version;

// JPG ELLER PNG?
$imagetype = @getimagesize($imgdir.$image);
if ($imagetype[2] == 2)
$img_in = @imagecreatefromjpeg($imgdir.$image);
else if ($imagetype[2] == 3)
$img_in = @imagecreatefrompng($imgdir.$image);

// SÆT HØJDE OG BREDDE FOR THUMBNAILS
$tmp_width = @imagesx($img_in);
$tmp_height = @imagesy($img_in);
if ($tmp_width > $maxsize || $tmp_height > $maxsize){
if ($tmp_width >= $tmp_height){
$thumb_width = $maxsize;
$thumb_height = ($tmp_height * ($maxsize / $tmp_width));
} else {
$thumb_width = ($tmp_width * ($maxsize / $tmp_height));
$thumb_height = $maxsize;
}
} else {
$thumb_width = $orgWidth;
$thumb_height = $orgHeight;
}

// LAV THUMBNAILS
//hvis gd versionen=1, brug funktionen imagecreate, ellers brug imagecrestetruecolor
if ($gd_version == 1){
$img_out = @imagecreate($thumb_width, $thumb_height);
} else {
$img_out = @imagecreatetruecolor($thumb_width, $thumb_height);
}
@imagecopyresized($img_out, $img_in, 0, 0, 0, 0, $thumb_width, $thumb_height, @imagesx($img_in), @imagesy($img_in));

if ($imagetype[2] == 2)
@imagejpeg($img_out, $tmbdir.$tmbpref.$image, $jpgqual);
else if ($imagetype[2] == 3)
@imagepng($img_out, $tmbdir.$tmbpref.$image);

@imagedestroy($img_in);
@imagedestroy($img_out);
}
?>
<html>
<head>
<title>SGF Galleri</title>
<style>
td {font-size: 10px; text-align: center; font-family: Verdana Arial;}
th {font-size: 14px; background-color: #DDDDDD;}
td.left {border-left: 1 solid #000000;}
</style>
</head>
<body>
<table border=0 cellpadding=5 cellspacing=0 align="center">
<tr>
<th colspan=<?=$per_row?>></th>
</tr>
<tr>
<td colspan=<?=$per_row?>><hr size=1></td>
</tr>
<?
// OK, LETS ROCK'N'ROLL
if ($dir = @opendir($imgdir)) {
$i = 1;
while (($file = readdir($dir)) !== false) {

// JUST CHECKING, SO THERE ISN'T ANY OTHER FILE FORMATS THAN JPG AND PNG
if (substr(strtolower($file), -3) == "jpg" || substr(strtolower($file), -3) == "png"){

// GET IMAGE SIZES
$sizeN = @getimagesize($imgdir.$file);
$filsizeN = round(@filesize($imgdir.$file) / 1000,2);

// CALL FUNCTION IF THUMB DON'T EXIST
if (!file_exists($tmbdir.$tmbpref.$file)){
createThumb($file,$sizeN[0],$sizeN[1]);
}

// GET THUMB SIZES
$sizeT = @getimagesize($tmbdir.$tmbpref.$file);
$filsizeT = round(@filesize($tmbdir.$tmbpref.$file) / 1000,2);

// PRINT OUT THE TABLE
if ($i == $per_row){
echo '<td class="left">'.$file.'<br><a href="'.$imgdir.$file.'">';
echo '<img src="'.$tmbdir.$tmbpref.$file.'" '.$sizeT[3].' border=0 alt="'.$file.'"></a><br>';
echo $sizeN[0].' x '.$sizeN[1].'<br>'.$filsizeN.' KB</td></tr>';
echo '<tr><td colspan='.$per_row.'><hr size=1></td></tr>';
$i = 1;
} else if ($i == 1){
echo '<tr valign="bottom"><td>'.$file.'<br><a href="'.$imgdir.$file.'"><img src="'.$tmbdir.$tmbpref.$file.'" '.$sizeT[3].' border=0 alt="'.$file.'"></a><br>';
echo $sizeN[0].' x '.$sizeN[1].'<br>'.$filsizeN.' KB</td>';
$i++;
} else {
echo '<td class="left">'.$file.'<br><a href="'.$imgdir.$file.'"><img src="'.$tmbdir.$tmbpref.$file.'" '.$sizeT[3].' border=0 alt="'.$file.'"></a><br>';
echo $sizeN[0].' x '.$sizeN[1].'<br>'.$filsizeN.' KB</td>';
$i++;
}
}
}
@closedir($dir);
}
?>



Jeg har kigget lidt på det og ændret din kode lidt i samme omgang..

Her fungere det udemærket med at kopiere filer mm.

Må jeg se din vis.php fil?

du kan lige få den kode jeg har lavet også:

<?php

// biblioteket som skal scannes
$dir = "galleri";

// stien til filen som skal kopieres, lig den et fast sted så den ikke skal kopiere sig selv.
$src = "vis.php";

// hvis mappen eksistere
if (file_exists($dir))
{
if ($mappe = @opendir($dir))
{
echo "Her er alle mapper med billeder i:\\n";
while (false !== ($mappenavn = readdir($mappe)))
{
//Ændrer ø til %F8 i $link - bruges til link
$link = str_replace("ø","%F8",$mappenavn);

// sti til filen som skal kopieres
$fildst = "". $dir ."/". $mappenavn ."/vis.php";

//list links til mapperne i mappen galleri, men vis ikke filer
if (is_dir($mappenavn) && ($mappenavn[0] != "."))
{
echo "<a href=\\"". $dir ."/". $link ."/vis.php\\">". $mappenavn ."</a>";

//hvis vis.php eksisterer i en mappe i galleri - skriv det
if (file_exists($fildst))
{
echo " - filen eksisterer";
}
//ellers kopier den fra roden til alle mapper i galleri
else
{
// kopier filen
if (copy ($src,$fildst))
{
echo " - kopiere filen - Det virkede";
}
else
{
echo " - kopiere filen - Det virkede ikke";
}
}
}
}
}
else
{
echo "Kunne ikke åbne mappen";
}
}
else
{
echo "Mappen eksistere ikke";
}
?>






t