I'm logging this as a potential bug because the way I'm thinking it should work is different than what I'm experiencing and I'd like to understand why it works the way it does, and possibly discuss changing to how I think it should work.

Scenario 1

  1. Upload a new file to a file or image field.
  2. Immediately remove the file.
  3. Re-upload the same file.

Note that the resulting filename in step 1 and 3 are the same, which would indicate that the first file is actually removed from the system and re-uploaded.

Scenario 2

  1. Upload a new file to a file or image field.
  2. Save the node.
  3. Edit the node.
  4. Remove the file you uploaded in step 1.
  5. Re-upload the same file.

Note that the resulting filename in step 1 and step 5 are different. Re-uploading the file appends _0 to the filename within the files directory and the original file was never removed from the file system.

Also note that even after a node save in between step 4 and 5, the file that is re-uploaded is renamed and the original never deleted.

Expectation

I would have expected that during step 4 in scenario 2 that the file would be removed from the file system as well as the database and therefor upon re-upload of a file with the same name that the file name not change. Otherwise, how else are files ever deleted?

GitHub Issue #: 
854