Um, perhaps another thing. You're setting $type = $query->uploadInfo($filename)->{'Content-Type'}; and then checking $type against 'text/html'. But if your test source file ends in '.txt' then what is mapping it to be an HTML file? I would think the file coming in would consider itself text/plain.