In 1995, San Francisco was coming off its 5th Super Bowl win and the 49ers were looking for a WR to eventually replace Jerry Rice or John Taylor (Taylor ended up retiring after the 95 season). They really liked JJ Stokes of UCLA, but he was going to be a top-15 pick and they were picking 30th.
Meanwhile, Cleveland, was picking 10th and everyone knew they were going to draft Penn State TE Kyle Brady. Unfortunately for them, the Jets snatched him up one pick earlier. *Reportedly*, the Browns were so confident that they were going to get Brady they had no contingency plan in place (although one finds that hard to believe).
At this point, the 49ers got on the phone and worked out a deal to move up to #10 and grab Stokes. The gave up their 1st [30th overall], 3rd [94th overall], and 4th [119th overall] round picks in that draft as well as their 1996 1st round pick.
Stokes has to be classified as a disappointment for the 49ers as he never made much of an impact for them, and certainly never any where near the level expected from a top-10 pick (never mind one they overpaid to move up and draft).
Meanwhile, the Browns didn't do THAT great with the picks they received, at least in 1995, drafting LB Craig Powell, DE Mike Frederick, and QB Dave Barr. But in 1996 (now the Ravens), the 1st round pick they received from the 49ers turned out to be the 26th overall and was used to select...Miami LB Ray Lewis.