Files
webmin/filemin/save_file.cgi
2026-04-08 19:53:49 +02:00

40 lines
808 B
Perl
Executable File

#!/usr/local/bin/perl
require './filemin-lib.pl';
&ReadParse();
get_paths();
my @errors;
# Validate inputs
my $file = &simplify_path($cwd.'/'.$in{'file'});
&check_allowed_path($file);
&error($text{'error_saving_file'}." : ".
ucfirst($text{'error_write'}))
if (!can_write($file));
$data = $in{'data'};
$data =~ s/\r\n/\n/g;
if ($in{'encoding'} &&
lc($in{'encoding'}) ne "utf-8") {
eval {
$data = Encode::encode(
$in{'encoding'},
Encode::decode('utf-8', $data))
};
}
&open_tempfile(SAVE, ">$file") ||
&error($text{'error_saving_file'}." : ".
&html_escape("$!"));
&print_tempfile(SAVE, $data);
&close_tempfile(SAVE);
if ($in{'save_close'}) {
&redirect("index.cgi?path=".&urlize($path));
}
else {
&redirect("edit_file.cgi?path=".&urlize($path).
"&file=".&urlize($in{'file'}));
}