Когда может я удалять файл после использования его в ответ. WriteFile ()?

Это не работает, потому что у вас есть "" вокруг свойств внутри вашего объекта. Вы можете исправить это, удалив символ "" или сделав это:

raffles[0]['entries'].push(//your code here);


Когда свойства объекта являются строками (т.е. когда они заключены в кавычки) вы должны получить доступ к этому свойству, используя «точечную нотацию»

например:

var object = {"property":"five"};
console.log(object["property"]); //prints 'five'

console.log(object.property); //throws an error
8
задан ProfK 14 October 2008 в 12:13
поделиться

5 ответов

Это полностью синхронно, как вы можете видеть, посмотрев на реализацию HttpResponse.WriteFile с Lutz Reflector. Вы можете удалить файл сразу после вызова Response.WriteFile .

У вас нет гарантии, что поток ответа был полностью передан клиенту, но вы вызываете Response.Flush также не дает вам такой гарантии. Поэтому я не вижу необходимости вызывать Response.Flush перед удалением файла.

Избегайте загрузки файла в MemoryStream , это не принесет вам пользы и имеет затраты на использование памяти, особенно для больших файлов.

4
ответ дан 5 December 2019 в 09:26
поделиться

Если Вы пишете файл клиенту с Response.WriteFile(), вызов к Response.Flush() удостоверится, что это было полностью произведено клиенту. После того как это сделало Вас, может удалить его прочь веб-сервера.

Можно хотеть придумать более устойчивую систему, если файл имеет жизненно важное значение. Скажите, клиентский сценарий для проверки этого, файл был получен хорошо и затем предупреждает веб-сервер, что файл может быть удален.

9
ответ дан 5 December 2019 в 09:26
поделиться

TransmitFile

Можно также назвать TransmitFile, чтобы позволить IIS заботиться о нем. Это на самом деле отправляется IIS за пределами Вашего процесса рабочего.

Поток памяти

Если Вы ДЕЙСТВИТЕЛЬНО параноики, не отправляйте файл. Загрузите его в поток памяти (если размер разумен), и передайте это. Затем можно удалить файл каждый раз, когда Вам нравится. Файл на диске никогда не будет затрагиваться IIS.

0
ответ дан 5 December 2019 в 09:26
поделиться

Если не изменяет память, это синхронно, как остальная часть команд ОТВЕТА.

0
ответ дан 5 December 2019 в 09:26
поделиться

Это решение. После использования синтаксиса Response.WriteFile (fileName); введите следующие строки кода:

Response.Flush();
System.IO.File.Delete(fullPathFileName);
Response.End();
5
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: