6 Einträge, 1 Seite |
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
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use CGI;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
my $cgi = new CGI;
print $cgi->header(-type => 'text/html'); #header für HTML
##########################################################
####UPLOAD
my $filehandle_de=$cgi->upload("pdf_de");
my $filehandle_en=$cgi->upload("pdf_en");
my $filehandle_fr=$cgi->upload("pdf_fr");
my $zielVerzeichnis_de = "/home/lidos/lidos_zusdok/D/SI";
#my $zielVerzeichnis_en = "/home/lidos/lidos_zusdok/GB/SI";
#my $zielVerzeichnis_fr = "/home/lidos/lidos_zusdok/F/SI";
my $pdf_de=$cgi->param("pdf_de");
my $pdf_en=$cgi->param("pdf_en");
my $pdf_fr=$cgi->param("pdf_fr");
$pdf_de =~ s/[^A-Za-z0-9_\.\-]//g; #nur die zeichen im [] sind im dateinamen erlaubt
#$pdf_en =~ s/[^A-Za-z0-9_\.\-]//g;
#$pdf_fr =~ s/[^A-Za-z0-9_\.\-]//g;
such_eintr();
if ($eintr) {
upload_file($pdf_de,$filehandle_de,$zielVerzeichnis_de);
}
sub upload_file {
my ($pdf_de,$filehandle_de,$zielVerzeichnis_de) = @_;
my $local_file = (split (/[\\\/]/,$pdf_de)) [-1];
my $target = $zielVerzeichnis_de.'/'.$local_file;
if (-e $target) {
print "Zieldatei existiert bereits!";
exit (0);
}
else {
binmode $filehandle_de;
open(TARGET, ">$target") or die $!;
binmode TARGET;
my ($buffer);
while (read $filehandle_de,$buffer,1024) {
print TARGET $buffer;
}
close TARGET;
print "Ihre datei wurde unter $target gespeichert";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
sub such_eintr {
print "<HTML>\n";
print "<HEAD><TITLE>FORMULAR</TITLE>";
print '</HEAD><BODY bgcolor ="#CCCCFF"><center>';
print '<span style="color:P font-size:15pt"><center><b>LIDOS Zusatzinformation</b></center></span>';
print '<form method="POST" action="/cgi-bin/frontl.cgi" enctype="multipart/form-data">';
if ($doctyp eq 'SI') {
print '<input type="file" name="pdf_de" size=30 maxlength=80>';
}
else {
print '<textarea name="deutsch" cols="50" rows="4">'.$param->{deutsch}.'</textarea>';
}
..................
1
2
3
my ($pdf_de,$filehandle_de,$zielVerzeichnis_de) = @_;
my $local_file = (split(/[\\\/]/,$pdf_de))[-1];
my $target = $zielVerzeichnis_de.'/'.$local_file;
1
2
3
4
5
6
7
8
9
main();
sub main {
print $cgi->header(-type => 'text/html'); #header für HTML
if ($eintr) {
if ($identnr =~m/^\d{6,9}[AB]?$/) {
tab_einf()
}
.....
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
sub tab_einf {
if ($eintr) {
&check_doctype();
}
my $dbh = DBI->connect($DBN,$DBUSER,$DBPASS) or die $DBI::errstr;
my $statement_check="SELECT ident_nr, docname FROM zusdoc WHERE ident_nr='$identnr' and docname='$docname'";
my $statement_insert="INSERT INTO $TABELLE VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
my $sth_insert=$dbh->prepare($statement_insert) or die $DBI::errstr;
my $sth_check=$dbh->prepare($statement_check) or die $DBI::errstr;
$sth_check->execute or die $DBI::errstr;
my ($merker_d, $merker_e, $merker_f) = 1 x 3;
my $merker = 0;
if ($doctyp eq 'EI')
{
if (($check1 || $check2 || $check3 || $check4 || $check5) and $ersteller and $werk)
{
if ($head_de and $deutsch)
{
$merker_d = 1;
}
elsif ($head_de or $deutsch) {
$merker_d = 0;
}
else {
$merker_d = 1;
}
if ($head_en and $englisch)
{
$merker_e = 1;
}
elsif ($head_en or $englisch) {
$merker_e = 0;
}
else {
$merker_e = 1;
}
if ($head_fr and $franz)
{
$merker_f = 1;
}
elsif ($head_fr or $franz) {
$merker_f = 0;
}
else {
$merker_f = 1;
}
}
}
elsif ($doctyp eq 'SI') {
unless ($sth_check->fetchrow_array()) {
if (($check1 || $check2 || $check3 || $check4 || $check5) && $ersteller && $werk && $docname)
{
if ($head_de and $pdf_de)
{
$merker_d = 1;
}
elsif ($head_de or $pdf_de) {
$merker_d = 0;
}
else {
$merker_d = 1;
}
if ($head_en and $pdf_en)
{
$merker_e = 1;
}
elsif ($head_en or $pdf_en) {
$merker_e = 0;
}
else {
$merker_e = 1;
}
if ($head_fr and $pdf_fr)
{
$merker_f = 1;
}
elsif ($head_fr or $pdf_fr) {
$merker_f = 0;
}
else {
$merker_f = 1;
}
}
}
}
#Einfügen in tabelle
if ($merker_d && $merker_e && $merker_f) {
if ($head_de) {
$sth_insert->execute($identnr,'DE',$doctyp,$docname,$head_de,$deutsch,$date,$ersteller,$werk,$check1,$check2,
$check3,$check4,$check5) or die $DBI::errstr;
upload_file();
$merker=1;
}
if ($head_en) {
$sth_insert->execute($identnr,'EN',$doctyp,$docname,$head_en,$englisch,$date,$ersteller,$werk,$check1,$check2,
$check3,$check4,$check5) or die $DBI::errstr;
$merker=1;
}
if ($head_fr) {
$sth_insert->execute($identnr,'FR',$doctyp,$docname,$head_fr,$franz,$date,$ersteller,$werk,$check1,$check2,
$check3,$check4,$check5) or die $DBI::errstr;
$merker=1;
}
}
if ($merker == 0) {
&warnung();
}
else {
if ($eintr) {
&ausgabe_neu();
}
elsif ($aktual) {
&ausgabe_aktual();
}
}
$sth_check->finish();
$sth_insert->finish();
$dbh->disconnect();
}
6 Einträge, 1 Seite |