copy the attachment into srcdir
parent
0f8ea7ecca
commit
4fa115fdb5
|
@ -49,6 +49,12 @@ sub formbuilder (@) { #{{{
|
||||||
error(gettext("bad attachment filename"));
|
error(gettext("bad attachment filename"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# XXX Put the attachment in a subdir corresponding to the
|
||||||
|
# page being edited.
|
||||||
|
# The editpage code has already checked that
|
||||||
|
# $form->field('page') is valid.
|
||||||
|
$filename="XXX/$filename";
|
||||||
|
|
||||||
# Use a pagespec to test that the attachment is valid.
|
# Use a pagespec to test that the attachment is valid.
|
||||||
if (exists $config{valid_attachments} &&
|
if (exists $config{valid_attachments} &&
|
||||||
length $config{valid_attachments}) {
|
length $config{valid_attachments}) {
|
||||||
|
@ -59,14 +65,24 @@ sub formbuilder (@) { #{{{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Move the attachment into place.
|
||||||
|
# Try to use a fast rename; fall back to copying.
|
||||||
|
prep_writefile($filename, $config{srcdir});
|
||||||
|
unlink($config{srcdir}."/".$filename);
|
||||||
|
if (! rename($tempfile, $config{srcdir}."/".$filename)) {
|
||||||
my $fh=$q->upload('attachment');
|
my $fh=$q->upload('attachment');
|
||||||
if (! defined $fh || ! ref $fh) {
|
if (! defined $fh || ! ref $fh) {
|
||||||
error("failed to get filehandle");
|
error("failed to get filehandle");
|
||||||
}
|
}
|
||||||
binmode($fh);
|
binmode($fh);
|
||||||
while (<$fh>) {
|
writefile($filename, $config{srcdir}, undef, 1, sub {
|
||||||
print STDERR $_."\n";
|
IkiWiki::fast_file_copy($tempfile, $filename, $fh, @_);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# TODO add to vcs
|
||||||
|
|
||||||
|
# TODO trigger a wiki build if there's no vcs
|
||||||
}
|
}
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue