Block level storage is what is exchanged between systems and storage devices such as disk drives and tape drives. They typically involve precise commands about where and how data is to be located.
File level storage is exchanged between systems in client/server interactions. The client does not care about where or how the file is stored, they just use the file's name. The server in this case still performs block level storage operations to read or write the data from a storage device of some sort.
This was first published in April 2001