使用PSGI,是否可以更改上传文件的命名方式?

时间:2012-09-29 16:56:00

标签: perl plack psgi

我有一个小型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

1 个答案:

答案 0 :(得分:4)

您可以通过filename对象的$request方法检索原始文件名,这样您基本上可以将$request->path复制到您想要的任何内容并处理该文件。