In all discussions I've seen so far (old quantum theory, semiclassical QM, QFT), when we talk about photon states, we seem to say they have a definite momentum. At the same time, we also say a photon is a particle that is localized in space. These two statements seem contradictory to me, given what I know so far.
In de Broglie's proposition, a photon is supposed to have energy $E = \hbar\omega$ and momentum $p = \hbar k$ ($k = 2\pi/\lambda$). Now in this semi-classical / old quantum theory treatment, the photon has a precise momentum, so doesn't that mean by Heisenberg's uncertainty principle that $\Delta x = \infty$? Even classically, a light wave of definite wavelength would have to be an infinite planewave.
In the second quantization formalism, we can think of a photon as a state of the form $\hat{a}_{\vec{k},\vec{\epsilon}}^{\dagger} | 0\rangle$ (where $\vec{k}$ is a definite wavevector and $\vec{\epsilon}$ is a definite polarization). If I'm not mistaken, the electric and magnetic fields would have nonzero amplitude distribution at every point in the entire quantization volume. But the quantization volume is arbitrary, so it seems there is no sense in which the photon is located in any specific point.
So why do we say photons are localized? It seems like they have to be infinite in size, but that doesn't make any sense.