Tags:
wordpress
billede
upload
Hej Udvikleren.dk
Jeg sidder med et skoleprojekt, hvortil jeg skal lave mit eget plugin til Wordpress. Her har jeg valgt at lave et hvor man kan uploade billeder, skrive noget information og lign.
Jeg har skrevet koden, som jeg har brugt til et tidligere projekt, hvor den virkede fint. Men nu får jeg fejlen
"Warning: copy(../images/hehe_program.png) [function.copy]: failed to open stream: No such file or directory in /var/www/frederikknudsen.dk/warehouse/wp-content/plugins/WarehouseArtist/warehouseartist.php on line 82"
Når jeg forsøger at uploade et billede.
Min uploads mappe er /images/ basicly, den er oprettet og har fået de rettigheder som der nu en gang skal til.
Min kode er følgende:
function upload($mappe, $FILE){
if ( substr($mappe, -1) != '/') {
$mappe = '/' . $mappe . '/';
}
$file_name = $FILE['name']; // Array navn på filen
$tmp_file_name = $FILE['tmp_name']; // Array tmp navn på filen
$size = $FILE['size']; // Størrelse på filen
$error = $FILE['error']; // Errors
$mimetype = $FILE['type']; // Type: fx. png, jpeg etc.
$image_name = $_POST['name'];
$image_name = strtolower($image_name);
$search = array('æ','ø','å',' ');
$replace = array('ae','oe','aa','');
$image_name = str_replace($search, $replace, $image_name);
$allowed_mime_types = array(
'image/jpeg',
'image/pjpeg',
'image/gif', // Tilladte mime typer, dvs. png, jpeg etc. er tilladt
'image/png'
);
if ( $error != 0) { // Hvis Error fra array IKKE er ligemed 0 stopper den her
echo "Der skete en fejl";
return;
}
if ($_POST['check'] == 1 & !in_array($mimetype, $allowed_mime_types)) { // Tjekker om den uploaded fil er en "lovlig" filtype.
echo 'Filtypen er ikke tilladt';
return;
}
$allowed_file_size = 1.1; // Tilladt fil størrelse MAX.
if ($size/1000000 > $allowed_file_size) { // Tjekker op på om hvis $size fra array er større end den tilladte
echo "Filen er for stor";
return;
}
$new_name = strtolower($file_name); // Laver filnavnet om til kun at være små bogstaver
$search = array('æ','ø','å', ' '); // Sørger efter æ,ø,å i filnavnet
$replace = array('ae','oe','aa', ''); // æ, ø, å bliver erstattet med ae, oe, aa
$new_name = str_replace($search, $replace, $image_name); // Udskifter tegnene fra $search med dem fra $repalce
$new_name = $image_name . "_program.png"; //Det nye filnavn for derved tiden fra tidspunktet det blev uploadet før selve fil navnet
$success = copy($tmp_file_name, $mappe . $new_name); // Kopirer
if ($success) {
return array(
'file_name' => $new_name,
'type' => $mimetype,
'save_folder' => $mappe
);
}
På forhånd tak.
1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
2
Hej
Den sti du prøver at kopiere til er "../images/hehe_program.png" - umiddelbart vil jeg tro, at det er her fejlen ligger.
Den mappe du henviser til ligger altså udenfor din plugin-mappe i stien "wp-content/plugins/images/".
Hvor har du oprettet din mappe "images" henne?
Hvis den er på "wp-content/plugins/WarehouseArtist/images", så ser det ud til at du kalder din upload()-funktion med et forkert mappe-parameter.
Mvh. Jens