我有一个小型PSGI应用程序,它从表单上传并将其传递给另一个脚本进行处理:
#!/usr/bin/perl
use strict;
use warnings;
use Plack::Request;
use HTTPStatusCode;
my $app = sub {
my $req = Plack::Request->new(shift);
my $content;
if (keys %{$req->uploads}) {
$content = do_something_with_upload($req);
} else {
$content = display_form();
}
return [
HTTPStatusCode->SUCCESS,
[ 'Content-type', 'text/html' ],
[ $content ],
];
};
文件会像/tmp/Fw8n6j0ICn.txt
一样成功上传。问题是,处理依赖于文件被命名为上传时的文件。
是否可以更改文件的上传方式,以便转到/tmp/Fw8n6j0ICn/original_name.txt
?
答案 0 :(得分:4)
您可以通过filename
对象的$request
方法检索原始文件名,这样您基本上可以将$request->path
复制到您想要的任何内容并处理该文件。