Beste,
Als ik een foto van mijn ipad of een andere foto upload komen deze op zijn op terecht.
als ik de foto verklein naar 600px dan is deze normaal zichtbaar.
Bestaat hier een oplossing voor?
PHP Code:
<?
#######################################################################
# $upload = new upload_class("uploadedfile","../Borden/");
#
class upload_class
{
var $field_name;
var $target_path;
var $name;
var $resize = false;
var $resizeType = 1; // 0 = vaste maten, 1 = variabel
var $width;
var $height;
var $type;
var $custom_types;
function upload_class($field,$target)
{
$this->target_path = $target;
$this->field_name = $field;
}
function file()
{
if($this->php_check() == true)
{
if($this->file_check() == true)
{
$this->move();
}
else
{
echo "<script>alert('Dit bestands type is niet toegestaan')</script>";
}
}
else {
echo "<script>alert('Het is niet toegestaan om PHP bestanden te uploaden !')</script>";
}
}
function move()
{
$input_name = $_FILES[$this->field_name]['name'];
$file_name = $this->genRandomString().rand(5, 15).rand(5, 15).rand(5, 15).rand(5, 15).strstr($input_name, '.');
$this->name = $this->target_path . $file_name;
#if(move_uploaded_file($_FILES[$this->field_name]['tmp_name'], $this->name))
if(copy($_FILES[$this->field_name]['tmp_name'], $this->name))
{
$this->name = str_replace("../","",$this->name); // verwijderd de directory tags
if($this->resize == true)
{
$this->makeimage($this->name);
}
}
else
{
echo "Er is een fout opgetreden bij het uploaden van het bestand probeer later nog eens<br/>";exit;
}
}
function php_check()
{
$clean = true;
$blocklijst = array(".php",".php5",".xhtml",".dhtml",".PHP",".php3");
foreach ($blocklijst as $item)
{
if(preg_match("/$item\$/i", $_FILES[$this->field_name]['name']))
{
$clean = false;
}
}
return $clean;
}
function file_check()
{
$allowed = array("image/jpeg", "image/JPEG", "image/JPG", "image/jpg", "image/pjpeg", "image/gif","image/png");
#$imageinfo = getimagesize($_FILES[$this->field_name]['tmp_name']);
$header = $_FILES[$this->field_name]['type'];
# if (in_array($imageinfo['mime'], $allowed))
# {
if (in_array($header, $allowed))
{
return true;
}
else {
return false;
}
#} else {
# return false;
# }
}
function genRandomString() {
$length = 10;
$characters = "0123456789abcdefghijklmnopqrstuvwxyz";
$string = "";
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters))];
}
return $string;
}
function makeimage($filename)
{
// hier wordt gecontrolleerd of filename ../ directory tags bevat
// anders wordt de image type niet correct gepakt
#copy("uploads_normale/rrpusrd0xo712146.jpg", "upload_thumbnail/rrpusrd0xo712146.jpg");
if (strpos($filename, "../") !== false) {
$edit_filename = str_replace("../","",$filename); // verwijderd de directory tags
$image_type = strstr($edit_filename, '.'); // pakt vervolgens de image type
}
else
{
$image_type = strstr($filename, '.');
}
switch($image_type) {
case '.jpg':
$source = imagecreatefromjpeg($filename);
break;
case '.JPG':
$source = imagecreatefromjpeg($filename);
break;
case '.jpeg':
$source = imagecreatefromjpeg($filename);
break;
case '.png':
$source = imagecreatefrompng($filename);
break;
case '.gif':
$source = imagecreatefromgif($filename);
break;
default:
echo("Error Invalid Image Type ");
die;
break;
}
$fullpath = $filename;
list($org_width, $org_height) = getimagesize($fullpath);
if ($this->resizeType == 0)
{
// resize op vaste maten
$newX = $this->width;
$newY = $this->height;
}
else
{
$percentage = ($org_width > $org_height) ? ($this->width / $org_width) : ($this->width / $org_height);
$newX = round($org_width * $percentage);
$newY = round($org_height * $percentage);
}
$thumb = imagecreatetruecolor($newX, $newY);
if(($image_type == ".gif") or ($image_type == ".png"))
{
// Indien het om een gif of png bestand gaat zal deze extra gerenderd worden
// zodat het plaatje niet automatisch een zwarte achtergrond krijgt.
imagealphablending($thumb, false);
imagesavealpha($thumb,true);
$transparent = imagecolorallocatealpha($thumb, 255, 255, 255, 127);
imagefilledrectangle($thumb, 0, 0, $newX, $newY, $transparent);
}
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newX, $newY, $org_width, $org_height);
imagejpeg($thumb, $fullpath, 100);
}
}
?>
- Php upload foto's op zijn kop
-
21-11-2014, 17:02 #1
- Berichten
- 320
- Lid sinds
- 14 Jaar
Php upload foto's op zijn kop
-
In de schijnwerper
Ervaren SEO Linkbuilder voor €17,50/uur - Boost Uw Online Zichtbaarheid!Freelance / WerkLinkvada.com Linkbuilding Platform: Direct linkbuilden op 60.000+ premium domeinenLinkpartnersErvaren freelance PHP/Javascript ontwikkelaar beschikbaarFreelance / WerkOntvang tot 20% kickbackfee op je Google Ads klanten, waar wacht je nog op?Promotie -
21-11-2014, 18:25 #2Particulier
- Berichten
- 1.412
- Lid sinds
- 15 Jaar
Re: Php upload foto's op zijn kop
Dat probleem heb ik ook ondervonden. IOS upload de foto op de kop.
Volgens mij moet je de EXIF data uitlezen en vervolgens bepalen wat de juiste orientatie is van de foto.
-
21-11-2014, 18:29 #3
- Berichten
- 2
- Lid sinds
- 10 Jaar
Re: Php upload foto's op zijn kop
Dit probleem heb ik ook onder vonden, wij hebben het opgelost met draaingen afhankelijk van de user agent
-
21-11-2014, 19:19 #4Particulier
- Berichten
- 1.412
- Lid sinds
- 15 Jaar
Re: Php upload foto's op zijn kop
Of klopt mijn bevinding niet (is enige tijd geleden)
-
24-11-2014, 20:40 #5
- Berichten
- 506
- Lid sinds
- 15 Jaar
Re: Php upload foto's op zijn kop
Het probleem zit hem zoals Wilbert aangeeft in de EXIF data en om precies te zijn in de orientation.
Ik heb het probleem een keer eerder verholpen met de volgende switch. Ik hoop dat je er iets aan hebt.
PHP Code:<?php
$highres = 'images/uploads/highres/' . md5($token) . '.' . $ext;
move_uploaded_file($_FILES["photos"]["tmp_name"][$i], '../'.$highres);
$image = WideImage::load("../" . $highres);
$exif = exif_read_data("../" . $highres);
switch($exif['Orientation']) {
case 1: // nothing
$resized = $image->resize(200, null);
break;
case 2: // horizontal flip
$resized = $image->resize(200, null)->flip();
break;
case 3: // 180 rotate left
case 4: // vertical flip
$resized = $image->resize(200, null)->rotate(180);
break;
case 5: // vertical flip + 90 rotate right
case 6: // 90 rotate right
case 7: // horizontal flip + 90 rotate right
case 8: // 90 rotate left
$resized = $image->resize(200, null)->rotate(-90);
break;
default:
$resized = $image->resize(200, null);
}
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic