от
Я создал PHP-скрипт, чтобы обновить веб-сервер, который будет жить в локальный каталог. Я переносе скрипта на языке Python. Он отлично работает по большей части, но после команды put, размер файла, кажется, изменить. Таким образом, размер файл отличается от файла на сервере. После того, как я снова загрузить файл с FTP-сервера, разница только в ЧР/НЧ Марка. Это раздражает меня, потому что тот же сценарий сравнивая размер файлов для обновления. Кроме того, в случае, если это что-нибудь значит, скрипт прекрасно работает в PHP ВИА ftp_put.
from ftplib import FTP

ftpserver = "myserver"
ftpuser = "myuser"
ftppass = "mypwd"

locfile =  "g:/test/style.css"
ftpfile =  "/temp/style.css"

try:
    ftp = FTP(ftpserver, ftpuser, ftppass)
except:
    exit ("Cannot connect")

f = open (locfile, "r")
try:
    ftp.delete (ftpfile)
except:
    pass

# ftp.sendcmd ("TYPE I")
# ftp.storlines("STOR %s" % ftpfile, f)
ftp.storbinary("STOR %s" % ftpfile, f)
f.close()

ftp.dir (ftpfile)
ftp.quit()
Какие-либо предложения?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

4 Ответы

0 голосов
от
Я создал PHP-скрипт, чтобы обновить веб-сервер, который будет жить в локальный каталог. Я переносе скрипта на языке Python. Он отлично работает по большей части, но после команды put, размер файла, кажется, изменить. Таким образом, размер файл отличается от файла на сервере. После того, как я снова загрузить файл с FTP-сервера, разница только в ЧР/НЧ Марка. Это раздражает меня, потому что тот же сценарий сравнивая размер файлов для обновления. Кроме того, в случае, если это что-нибудь значит, скрипт прекрасно работает в PHP ВИА ftp_put.
from ftplib import FTP

ftpserver = "myserver"
ftpuser = "myuser"
ftppass = "mypwd"

locfile =  "g:/test/style.css"
ftpfile =  "/temp/style.css"

try:
    ftp = FTP(ftpserver, ftpuser, ftppass)
except:
    exit ("Cannot connect")

f = open (locfile, "r")
try:
    ftp.delete (ftpfile)
except:
    pass

# ftp.sendcmd ("TYPE I")
# ftp.storlines("STOR %s" % ftpfile, f)
ftp.storbinary("STOR %s" % ftpfile, f)
f.close()

ftp.dir (ftpfile)
ftp.quit()
Какие-либо предложения?
0 голосов
от
Вам нужно открыть locfile в двоичный используя
rb
?
f = open (locfile, "rb")
0 голосов
от
Ну если вы идете в свойства файла в Windows или в среде *Nix, вы заметите два размера. Одним из них является размер сектора, и один фактический размер. Размер сектора, количество секторов в байтах, которые используются на вашем жестком диске. Это потому, что два файла не могут быть в одном секторе с самых современных файловых систем, так что если ваш файл заполняет половину сектора весь сектор помечается как заполнить. Так ты, может быть, сравнивая размер файловой системы на размер файла на FTP-сервер или наоборот.
0 голосов
от
Маленькие файлы занимают целый узел в файловой системе, независимо от размера. Мой хозяин стремится сообщить все небольшие файлы 4 КБ как в FTP, а в оболочке дает точный размер, так что это может быть "особенность" общие для FTP-клиентов.
...