Let op: het aanpassen van core-files van phpBB 3.1 en hoger wordt afgeraden. Het is beter om extensies toe te passen. Nu is het zo dat hier geen extensie voor is aangezien de bug niet bij phpBB maar iOS ligt die verkeerde EXIF data toevoegt dus zal hier geen extensie voor komen waarschijnlijk.
Indien je veel last van gekantelde foto's hebt, kun je proberen het op te lossen met onderstaande wijziging van Dennis, maar let erop dat het ongeteste en ongevalideerde code is welke mogelijk issues kan hebben. Tevens kan het zijn dat bij updates van phpBB deze wijziging tot problemen leidt.
- Ger
Maakt eerst een back-up van je bestand(en) en ik kan geen garantie geven op het correct functioneren ervan.
Zijn er lezers met een beter kijken erop, reageer dan zeker met feed-back.
Het kantelen werkt op basis van de exif-data, dit zal dus werken met een jp(e)g, maar niet met een png.
Open /includes/function_upload.php
find:
Code: Selecteer alles
$ie_mime_relevant = fread($fp, 256);
fclose($fp);
foreach ($disallowed_content as $forbidden)
{
if (stripos($ie_mime_relevant, '<' . $forbidden) !== false)
{
return false;
}
}
}
return true;
}
after add:
Code: Selecteer alles
// add rotate function
function rotate_image($file, $extension)
{
$exif = exif_read_data($file);
$image = imagecreatefromjpeg($file);
if (!empty($exif['Orientation'])) {
switch ($exif['Orientation']) {
case 3:
$imagert = imagerotate($image, 180, 0);
break;
case 6:
$imagert = imagerotate($image, -90, 0);
break;
case 8:
$imagert = imagerotate($image, 90, 0);
break;
}
if (isset($imagert)){
if(($this->extension == "jpg") || ($this->extension == "jpeg")) imagejpeg ($imagert,$this->filename);
imagedestroy($imagert);
imagedestroy($image);
}
}
}
// end rotate function
find:
Code: Selecteer alles
@unlink($this->filename);
$this->error[] = $user->lang($this->upload->error_prefix . 'GENERAL_UPLOAD_ERROR', $this->destination_file);
$this->file_moved = false;
return false;
}
else
{
if (file_exists($this->destination_file))
{
@unlink($this->destination_file);
}
after add:
Code: Selecteer alles
// add rotate image
$extension = $this->extension;
if(($extension == "jpg") || ($extension == "jpeg")){
$this->rotate_image($this->filename,$extension);
}
// end rotate image