Обычно, когда я хочу передать текстовый файл веб-сервера клиенту, вот что я сделал
import cgi
print "Content-Type: text/plain"
print "Content-Disposition: attachment; filename=TEST.txt"
print
filename = "C:\\TEST.TXT"
f = open(filename, 'r')
for line in f:
print line
Очень хорошо работает для файла ANSI. Однако, скажем, у меня есть двоичный файл a.exe
(этот файл находится в секретном пути веб-сервера, и у пользователя не должно быть прямого доступа к этому пути каталога). Я хочу использовать подобный метод для передачи. Как я могу это сделать?
- Какой тип контента мне следует использовать?
- При использовании печати поврежденный контент получен на стороне клиента. Какой правильный метод?
Я использую следующий код.
#!c:/Python27/python.exe -u
import cgi
print "Content-Type: application/octet-stream"
print "Content-Disposition: attachment; filename=jstock.exe"
print
filename = "C:\\jstock.exe"
f = open(filename, 'rb')
for line in f:
print line
Однако, когда я сравниваю загруженный файл с оригинальным файлом, кажется, что после каждой отдельной строки появляется дополнительный пробел (или больше).
![alt text](https://i.stack.imgur.com/bcM8P.png)