[Bug] Gallery Component - Frontend Multiple Upload

mccool1985
Phoca Newbie
Phoca Newbie
Posts: 4
Joined: 01 Sep 2011, 03:37

[Bug] Gallery Component - Frontend Multiple Upload

Post by mccool1985 » 01 Sep 2011, 17:39

Hi,

Wanted to inform you that I have posted a message in this thread: viewtopic.php?f=1&t=15434

Basically, the code in geo.php needs to be rewritten in order to prevent division by zero errors. The OP there had a problem with multiple uploads, just like me. Did a little hack in the code to prevent this division by zero error, but I think you guys need to fix this bug for the next update.

If I can be of any help, I am happy to help. Keep up the good work, I love the Phoca components :D

mccool1985
Phoca Newbie
Phoca Newbie
Posts: 4
Joined: 01 Sep 2011, 03:37

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by mccool1985 » 01 Sep 2011, 17:43

Below here my reply plus quick workaround.
-----------------------------------------------------------------------------
Hi, i had the same problem and did what was suggested, debugging it with Firebug.

It gave me an error in \administrator\components\com_phocagallery\libraries\phocagallery\geo\geo.php (division by zero) on line 63

It seems it tries to get the Location out of EXIF data. So when these coordinates are in there and are set to 0, you have a problem. In the code they did not think about this clearly. Anyway, after the first image is uploaded, it tries to get the location out of it, and exits after it receives multiple division by zero errors, that's why the uploader hangs after the first upload.

Did a little hack in the code, quick workaround

--- WORKAROUND ---

Find this code on line 47 in geo.php:

Code: Select all

if (!function_exists('exif_read_data')) {
		return array('latitude' => 0, 'longitude' => 0);
	} else {
	  
		$exif 		= exif_read_data($fileOriginal, 0, true);
		$GPSLatDeg 	= explode('/',$exif['GPS']['GPSLatitude'][0]);
		$GPSLatMin 	= explode('/',$exif['GPS']['GPSLatitude'][1]);
		$GPSLatSec 	= explode('/',$exif['GPS']['GPSLatitude'][2]);
		$GPSLonDeg 	= explode('/',$exif['GPS']['GPSLongitude'][0]);
		$GPSLonMin 	= explode('/',$exif['GPS']['GPSLongitude'][1]);
		$GPSLonSec 	= explode('/',$exif['GPS']['GPSLongitude'][2]);

		$lat = $GPSLatDeg[0]/$GPSLatDeg[1]+
			($GPSLatMin[0]/$GPSLatMin[1])/60+
			($GPSLatSec[0]/$GPSLatSec[1])/3600;
		$long = $GPSLonDeg[0]/$GPSLonDeg[1]+
			($GPSLonMin[0]/$GPSLonMin[1])/60+
			($GPSLonSec[0]/$GPSLonSec[1])/3600;
		// $exif['GPS']['GPSLatitudeRef'] SHIROTA: N=+; S=-
		// $exif['GPS']['GPSLongitudeRef'] DOLGOTA: E=+; W=-
		if($exif['GPS']['GPSLatitudeRef'] == 'S'){$lat=$lat*(-1);}
		if($exif['GPS']['GPSLongitudeRef'] == 'W'){$long=$long*(-1);}

		return array('latitude' => $lat, 'longitude' => $long);
	  }
Above this code-block, so on line 46, just insert this code:

Code: Select all

return array('latitude' => 0, 'longitude' => 0);
It basically rips out the option to get a location out of the EXIF data. I'm sure there are far better solutions for this, maybe rewrite the code with some type of try clause in it. I'll let the developers do their work, maybe someone has a suggestion to rewrite the formulas for $lat en $long to make them work (prevent it is divided by zero)

Anyway, for me the above did the trick (and I don't use the EXIF and GPS stuff, so I don't care). After I changed the code my HTML5 uploader worked like a charm!

User avatar
Jan
Phoca Hero
Phoca Hero
Posts: 43194
Joined: 10 Nov 2007, 18:23
Location: Czech Republic
Contact:

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by Jan » 06 Sep 2011, 22:22

Hi, this will be solved in 3.0.3 version:

Code: Select all

if (isset($exif['GPS']['GPSLatitude'][0])) {$GPSLatDeg 		= explode('/',$exif['GPS']['GPSLatitude'][0]);}
		if (isset($exif['GPS']['GPSLatitude'][1])) {$GPSLatMin 		= explode('/',$exif['GPS']['GPSLatitude'][1]);}
		if (isset($exif['GPS']['GPSLatitude'][2])) {$GPSLatSec 		= explode('/',$exif['GPS']['GPSLatitude'][2]);}
		if (isset($exif['GPS']['GPSLongitude'][0])) {$GPSLongDeg 	= explode('/',$exif['GPS']['GPSLongitude'][0]);}
		if (isset($exif['GPS']['GPSLongitude'][1])) {$GPSLongMin 	= explode('/',$exif['GPS']['GPSLongitude'][1]);}
		if (isset($exif['GPS']['GPSLongitude'][2])) {$GPSLongSec 	= explode('/',$exif['GPS']['GPSLongitude'][2]);}
		
		
		if (isset($GPSLatDeg[0]) && isset($GPSLatDeg[1]) && (int)$GPSLatDeg[1] > 0
		 && isset($GPSLatMin[0]) && isset($GPSLatMin[1]) && (int)$GPSLatMin[1] > 0
		 && isset($GPSLatSec[0]) && isset($GPSLatSec[1]) && (int)$GPSLatSec[1] > 0) {

			$lat = $GPSLatDeg[0]/$GPSLatDeg[1]+
				($GPSLatMin[0]/$GPSLatMin[1])/60+
				($GPSLatSec[0]/$GPSLatSec[1])/3600;
				
			if(isset($exif['GPS']['GPSLatitudeRef']) && $exif['GPS']['GPSLatitudeRef'] == 'S'){$lat=$lat*(-1);}
			
		
		}
		
		 
		if (isset($GPSLongDeg[0]) && isset($GPSLongDeg[1]) && (int)$GPSLongDeg[1] > 0
		 && isset($GPSLongMin[0]) && isset($GPSLongMin[1]) && (int)$GPSLongMin[1] > 0
		 && isset($GPSLongSec[0]) && isset($GPSLongSec[1]) && (int)$GPSLongSec[1] > 0) {

	
			$long = $GPSLongDeg[0]/$GPSLongDeg[1]+
				($GPSLongMin[0]/$GPSLongMin[1])/60+
				($GPSLongSec[0]/$GPSLongSec[1])/3600;
				
			if(isset($exif['GPS']['GPSLongitudeRef']) && $exif['GPS']['GPSLongitudeRef'] == 'W'){$long=$long*(-1);}

		}
		


		return array('latitude' => $lat, 'longitude' => $long);
If you find Phoca extensions useful, please support the project

mccool1985
Phoca Newbie
Phoca Newbie
Posts: 4
Joined: 01 Sep 2011, 03:37

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by mccool1985 » 07 Sep 2011, 16:34

Nice job, could learn a lot from this little piece of code :). Will be waiting for the next release, it will be integrated in the next version of arhdcomprix.nl (My website, dedicated to my fraternity, Dutch)

User avatar
Jan
Phoca Hero
Phoca Hero
Posts: 43194
Joined: 10 Nov 2007, 18:23
Location: Czech Republic
Contact:

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by Jan » 07 Oct 2011, 14:51

If you find Phoca extensions useful, please support the project

NoelFielder
Phoca Newbie
Phoca Newbie
Posts: 1
Joined: 24 Jan 2012, 17:58

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by NoelFielder » 24 Jan 2012, 18:00

Is this fixed now before I get started?

SonRiab
Phoca Professional
Phoca Professional
Posts: 258
Joined: 02 Jun 2011, 09:29
Contact:

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by SonRiab » 24 Jan 2012, 23:34

Phoca Gallery has the version number 3.1.2 now so this should be fixed, yes.

Canopus
Phoca Member
Phoca Member
Posts: 11
Joined: 10 Jan 2011, 23:25

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by Canopus » 14 Sep 2012, 22:53

Hello

I use the last Phoca galery (3.2.1) and the issue is still occurs :

Any multi-upload method selected make the error "Flash is not installed on your browser" *

I use Firefox 15 and French phoca translation.

Any help will be welcome.

Canopus

User avatar
Jan
Phoca Hero
Phoca Hero
Posts: 43194
Joined: 10 Nov 2007, 18:23
Location: Czech Republic
Contact:

Re: [Bug] Gallery Component - Frontend Multiple Upload

Post by Jan » 28 Sep 2012, 00:50

Hi, testing now without any problem, do you get the problem with chrome too? Check if you don't have any javascript error on your site? Maybe such error prevents from running the javascript properly :idea:

Jan
If you find Phoca extensions useful, please support the project

Post Reply