# code by 523066680 funicode.net
use Mojolicious::Lite;
use File::Basename;
use URI::Escape;
STDOUT->autoflush(1);
my $app = app;
my $static = $app->static;
my $pwd = $ENV{PWD};
my $port = 3000;
my $localhost = get_localhost_ip();
push @{$static->paths}, ( $pwd );
push @{$static->paths}, ( "E:/Temp/Share" );
my @files = glob "*.mp4";
for my $e ( @files )
{
my $url = sprintf "http://%s:%s/%s", $localhost, $port, uri_escape(basename($e));
printf "%s\n", $url;
}
get '/' => sub {
my $self = shift;
#... do something for a homepage here ...
};
$app->start('daemon', '-l', "http://*:${port}");
sub get_localhost_ip
{
my $result = `ipconfig /all`;
if ( $result =~ /WLAN:.*?IPv4 .*?:\s+([\d\.]+)/msi )
{
return $1;
}
}
=info
Code by 523066680 Funicode.net
2023-10
=cut
use utf8;
use Encode;
use Modern::Perl;
use Mojolicious::Lite;
use File::Slurp;
use File::Basename;
use URI::Escape;
STDOUT->autoflush(1);
my $app = app;
my $static = $app->static;
my $pwd = $ENV{PWD};
my $port = 3000;
my $localhost = get_localhost_ip();
# 如果使用 文件夹完整地址,文件夹名称含有中文时,可能导致访问失败。
# 使用相对路径可以暂时略过该问题
push @{$static->paths}, ( "./" );
push @{$static->paths}, ( "E:/Temp/Share" );
my @files = glob "*.mp4 *.mp3 *.gif";
for my $e ( @files )
{
my $url = sprintf "http://%s:%s/%s", $localhost, $port, uri_escape(basename($e));
printf "%s\n", $url;
}
get '/' => sub {
my $self = shift;
#... do something for a homepage here ...
};
$app->start('daemon', '-l', "http://*:${port}");
sub get_localhost_ip
{
my $result = `ipconfig /all`;
if ( $result =~ /WLAN:.*?IPv4 .*?:\s+([\d\.]+)/msi )
{
return $1;
}
}
sub gbk { encode('gbk', $_[0]) }
sub utf8 { encode('utf8', $_[0]) }
sub u2gbk { encode('gbk', decode('utf8', $_[0])) }
sub uni { decode('utf8', $_[0]) }