Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10722[/thread]

file upload per NET::FTP



<< >> 5 Einträge, 1 Seite
Gast Gast
 2007-11-05 17:00
#101881 #101881
ich versuche mit NET::FTP ein kleines Programm zu schreiben das Dateien von einem Server lädt, einen Teil der Header info ersetzt z.B: "revisit-after" Tag und dann wieder hochspielt. Das runterholen klappt, die veränderungen klappen auch nur wenn ich die Datei wieder hochspiele fehlt am Ende jeder Zeile das letzte Zeichen. Warum verliert das Programm beim hochspielen jedesmal das letzte Zeichen.
renee
 2007-11-05 17:12
#101884 #101884
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zeig mal etwas Code...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2007-11-06 16:04
#101907 #101907
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
use Net::FTP;
use CWD;

my $server="";
my $username="";
my $password="";
my $filenameup ='';
my @liste = ();
my $liste = '';
my $verzeichnis ='';
my %verzhash = ();
my %FileSize = ();

$ftp=Net::FTP->new($server, Debug=>0)
$ftp->login($username, $password)


$ftp->cwd($verzeichnis);
$dir= $ftp->pwd();

@liste=$ftp->ls();

mkdir ("C:/download/".$verzeichnis);
foreach $liste(@liste){
Listen erstellen
}

$Directory='';

foreach $Directory(@Directory){

if($Directory ne $verzeichnis.$verzeichnis){

$liste ='';
@liste = ();

$ftp->cwd($Directory);

$dir= $ftp->pwd();
@liste=$ftp->ls();

foreach $liste(@liste){
Listen erstellen
}
}
}

foreach $element(@htmDirectory){
$file = $ftp->mdtm($element);
$verzhash{$file}=$element;
}


foreach $Directory(@Directory){
mkdir ("C:/download/".$Directory);
}

$i=0;
@localDirectory=();

foreach $wert (sort {$a<=>$b} keys %verzhash){
if ($i<=0){
push @localDirectory, "C:/download".$verzhash{$wert};
push @remoteFile, $verzhash{$wert};
$ftp->type("I");
$ftp->get($verzhash{$wert},"C:/download".$verzhash{$wert});
print "Datei : $verzhash{$wert}\n";
$FileSize{$verzhash{$wert}} = $ftp->size($verzhash{$wert});
}
$i++;
}

$ftp->quit();


foreach $element(@localDirectory){
&headinfo($element);
}

$element='';

$ftp=Net::FTP->new($server, Debug=>0);
$ftp->login($username, $password);

foreach $element(@remoteFile){
&uploadfile($element);
}

$element='';

$ftp->quit()


sub headinfo
{
hier wird die Datei geändert ....
}
sub uploadfile
{
$ftp->type("I");
$filenameup = $ftp->put("C:/download/".$_[0], $_[0]);
print "$filenameup ($FileSize{$_[0]} - ". $ftp->size($_[0]) .")\n";
print "Letzte Aenderung nach Upload ". $ftp->mdtm($_[0]) ."\n\n";
}
Gast Gast
 2007-11-06 16:13
#101909 #101909
Mußte den Code stark kürzen da ich nur 2000 Zeichen eintragen darf.
Habe gestern noch mit Ascii und Binary Modus rumprobiert. Es ist wohl so das standardmäßig Ascii für den Upload verwendet wird. Und im Ascii Modus wird immer das letzte Zeichen der Zeile, egal was das ist, gelöscht. Aber lokal ist sie noch in Ordnung. Dann hab ich den upload modus auf binary gestellt da sieht die Seite genauso aus wie die original Datei ist aber einige Bytes größer als die Originaldatei. Wenn ich die Datei nur herunterlade und nichts an der Datei verändere hat sie die gleiche Größe sobald ich hergehe und das Datum ändere verändert sich die Größe. Ursprünglich steht in der Datei <meta name="date" content="2007-11-06"> nach der Änderung steht dann folgendes <meta name="date" content="2007-11-06"> und es ist egal ob das Programm die Änderung vornimmt oder ich per Hand die Sache ändere.
Gast Gast
 2007-11-06 16:33
#101911 #101911
Hintergrund ist folgender. Nachdem upload will ich einfach überprüfen ob die Datei wieder korrekt hochgeladen wurde und wenn es Probleme gab soll eine Meldung erscheinen.Erst <meta name="date" content="2007-12-29"> dann <meta name="date" content="2007-11-06"> so ist es korrekt.
<< >> 5 Einträge, 1 Seite



View all threads created 2007-11-05 17:00.