Is the idea here that you have a file uploaded beforehand, and then want to sell access to that data multiple times?
Some issues, ideas:
1. Keep the data private to only that buyer
Seller encrypts the document's decrypt key with the public key of one of the outputs the buyer used to transfer BTC to purchase the document, and adds this information into the transaction (via OP_RETURN?) that "accepts" the money (moves it from the nLockTime addess to one controlled solely by the seller). Buyer sees this txn, decrypts the data key, and uses that to decrypt the data.
OFC, the seller could just take the money without putting the document's decrypt key in OP_RETURN... but he could also just fill the document with garbage so the buyer must presume some good faith on the part of the seller.
2. a buyer can't verify beforehand that the data is real.
One solution to this issue is to break the data into chunks and the buyer could buy a chunk, verify it, and then buy another. Ofc, this requires that the data be both incrementally valuable and verifiable in portions.
You would need to protect both against the data being junk, and against the seller cheating on the last txn (not providing the decrypt key). The way to do this would be to break the document into rising and falling power of 2 chunks. For example, the document could be broken into chunks of size:
1,2,4,8,16,8,4,2,1
payment for each chunk would be proportional to the size of the chunk/total document size.
3. The buyer could give his decryption key to others.
You could require the buyer to put bitcoin in an address corresponding to the decryption key. Anyone who is given the decryption key could steal the buyer's coins... the server monitors this address and pulls the document when the coins disappear.
Ofc the buyer could just download and decrypt the document and then send it to whoever he wants. So
this idea only works if what you are selling is the bandwidth (the access), or if the "document" is actually rapidly changing data whose value diminishes rapidly.