我有一个小型的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
?
您可以通过$request
对象filename
方法检索原始文件名,因此您基本上可以将$request->path
复制到您想要的任何内容并处理该文件。