A Perth Uber driver said he thought he was going to die after he was violently attacked by a passenger when he refused to stop at McDonalds.

Sam Ghosh claims he picked the man and two women up from Mandurah in the early hours of Sunday morning, and was going to drop them in Lakelands – but the group repeatedly asked him to stop for fast food.

The father-of-two refused, as it’s against the ride-sharing app’s regulations.

Sam Ghosh said he was attacked when he refused to stop of McDonalds, because it's against Uber's policy. (9NEWS) (9news)

That’s when he said one of the passengers snapped, punching him up to 15 times in the head from the back seat of his car.

“The women were screaming to the guy ‘don’t kill him, he’s going to get killed,’” Mr Ghosh exclusively told 9NEWS.

“I was totally blacked out. Every punch he was giving me, I closed my eyes and every punch was a thunderstorm feeling.”

The father-of-two was punched up to 25 times in the head. (9NEWS) (9news)

The attack left the 35-year-old bloody and bruised and his eyebrow split open.

Mr Ghosh he had no option but to run.

“He was running towards me, to probably beat me more… But I got hold of my phone and called triple zero straight away.”

Mr Ghosh has this message for other drivers, worried about their safety: “Uber is fun, driving is fun… But until this happens to you, you’ll realise it’s not so fun,” he said.

“Just try and get some cameras in your car and protect yourself.”

Mr Ghosh is urging other Uber drivers to get cameras in their cars to protect themselves. (9NEWS) (9news)

A 26-year-old man has been charged with assault occasioning bodily harm.