multipart might screw things up. always buffer to file