(finally) wrap up new tax rate engine (for now)
[freeside.git] / httemplate / misc / file-upload.html
1 <% include('/elements/header-minimal.html', 'File Upload') %>
2 % if ($error) {
3 Error: <% $error %>
4 % }else{
5 Freeside File Upload Successful <% join(',', @filenames) %>;
6 % }
7 <% include('/elements/footer.html') %>
8 <%init>
9
10 die "access denied"
11   unless $FS::CurrentUser::CurrentUser->access_right('Import'); #?
12
13 my @filenames = ();
14 my $error = '';     # could be extended to the access control
15
16 $cgi->param('upload_fields') =~ /^([,\w]+)$/
17   or $error = "invalid upload_fields";
18 my $fields = $1;
19
20 my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
21
22 foreach my $field (split /,/, $fields) {
23   next if $error;
24
25   my $fh = $cgi->upload($field)
26     or $error = "No valid file was provided.";
27
28   my $sh = new File::Temp( TEMPLATE => 'upload.XXXXXXXX',
29                            DIR      => $dir,
30                            UNLINK   => 0,
31                          )
32     or $error ||= "can't open temporary file to store upload: $!\n";
33
34   unless ($error) {
35     while(<$fh>) {
36       print $sh $_;
37     }
38     $sh->filename =~ m!.*/([.\w]+)$!;
39     push @filenames,  "$field:$1";
40     close $sh
41   }
42
43 }
44
45 $error = "No files" unless scalar(@filenames);
46
47 </%init>