Этот чувак в дискуссии не имеет ни малейшего представления о том, о чем он говорит, ИМО. Многие называют себя экспертами, но это только большие пушки с пустыми снарядами. Если вы хотите выполнить загрузку асинхронного файла, вы можете использовать Flash. Обычно я не рекомендую Flash, но виджет SWFUpload, IMO, один из лучших.
http://www.swfupload.org/
Кроме этого, вы могли бы взглянуть на это, код довольно некрасив, но автор, похоже, подтверждает, что это кросс-браузер.
http://www.webtoolkit.info/ajax-file-upload.html
Чтобы ответить на ваш вопрос: нет, удаление iframe не гарантирует, что загрузка действительно прекратится или что процесс загрузки был фактически отменен на стороне сервера. Это связано с тем, что удаление iframe из DOM не гарантирует, что что-то где-то еще не используется, и поэтому не является сборщиком мусора.
Вместо удаления iframe вы можете просто установить другой целевой URL (например, «about: blank»), который обычно разрывает соединение с сервером и в конечном итоге останавливает любую передачу данных в процессе. После этого вы можете удалить iframe.
Однако я хотел бы предложить двухэтапный процесс, в котором вы загружаете файл вместе со скрытым полем, содержащим некоторое значение хеш-функции. Файл хранится во временном каталоге на сервере. Когда загрузка завершена, вы делаете второй запрос с тем же хешем, чтобы проверить завершение загрузки файла и завершить обработку загрузки. Это гарантирует, что если загрузка отменена на полпути, но файл уже был загружен на сервер, вы просто не завершите процесс, и у вас может быть просто другой процесс, который позже очистит временные загруженные файлы.
Первое решение проще, но требует Flash: (