Allowing file upload will only be half your battle.
Assuming you give them a file input, accept an upload, verify it as an image, store it to disk, you then will have to decide on placement in your output.
This can be done by a default 'if there is an image associated with this entry, display it here', or by giving them a special code they put in their text, and placing the image there, and then you can start getting more complicated, and allowing structured input, that creates an iframe over the textarea, and turns the browser mode to edit, and allows them to paste in from word, or give them dom manipulation tools, all in all usually a lot of javascript type stuff, and loads of work, and loads more browser computability issues.
If you want to focus on other aspects and plug in a handler, there's a bunch of free wysiwyg editors available out there, like tinymce, that most CMS systems end up using, most of which have a module that uses php to handle multi file uploads.
If all you want is the ability to place one image with a chunk of plain text, and nothing more, then do look into file upload, file storage (and probably image manipulation) and leave it at that. (It's also fun stuff to write, you'll probably learn a lot doing it) - but if you want something more fully featured, and/or have a time constraint, it's probably worth looking at one of the free wysiwyg plugins.