Question

J'ai créé un script PHP pour mettre à jour un serveur web qui est en ligne à l'intérieur d'un répertoire local.Je suis la migration du script en Python.Il fonctionne très bien pour la plupart, mais après une commande, la taille du fichier s'affiche à changer.Ainsi, la taille du fichier est différent de celui du fichier sur le serveur.

Une fois que j'ai télécharger à nouveau le fichier sur le serveur FTP, la seule différence est la CR/LF marque.Ce qui me gêne, parce que le même script est de comparer la taille des fichiers de mise à jour.Aussi, dans le cas où il signifie quelque chose, le script fonctionne parfaitement en PHP vía 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()

Toutes les suggestions?

Était-ce utile?

La solution

Avez-vous besoin d'ouvrir la locfile en binaire à l'aide de rb?

f = open (locfile, "rb")

Autres conseils

Eh bien, si vous passez sous les propriétés de votre fichier dans Windows ou un *nix environnement, vous remarquerez deux tailles.On est à la taille du secteur, et l'un est la taille réelle.La taille de secteur est le nombre de secteurs, en octets, qui sont utilisés sur votre disque dur.C'est parce que les deux fichiers ne peuvent pas être dans le même secteur avec la plupart des systèmes de fichiers modernes, donc si votre fichier se remplit de la moitié du secteur l'ensemble du secteur est marqué comme rempli.

Donc, vous pourriez être en comparant le secteur de la taille du fichier la taille réelle du fichier sur le serveur FTP ou vice versa.

De petits fichiers de prendre un ensemble de nœud sur le système de fichiers quelle que soit la taille.

Mon hôte a tendance à signaler tous de petits fichiers de 4 ko en ftp mais dans un shell donne un précis de la taille de sorte qu'il pourrait être une option commune pour les clients ftp.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top