The calculated distance (air line) between Charsadda and Upper Dir is approximately 74 miles respectively 118 kilometers.
By car or train, the actual journey to Upper Dir is certainly longer, as only the direct route (as the crow flies) between Charsadda and Upper Dir has been calculated here.