Last season, Leno, 30, lost his starting spot to England goalkeeper Aaron Ramsdale after appearing in just nine games.
He played 125 times in all competitions for the Gunners after joining Bayer Leverkusen for £20 million in 2018. He recorded 37 clean sheets overall.
Leno is Fulham’s seventh summer acquisition since the team was re-admitted to the Premier League.
The Cottagers now include Joao Palhinha, Andreas Pereira, Kevin Mbabu, and Manor Solomon.
It feels fantastic to be here, at last, added Leno. I am eager to join the squad, practice, and play with them.
“Now that everything is over, I feel relieved. Just being here makes me joyful. The most important thing is that we succeeded in the end, even if it took some time.
According to reports, Fulham will pay £3 million upfront and a further $5 million in possible add-ons.