我在网页上有一个提交按钮,点击后会执行文件下载。
我试图在点击后禁用提交(以防止在服务器端创建文件时重新提交),然后在下载文件时重新启用提交按钮。
我几乎按照以下教程完成了工作,简而言之:
Detecting file download in browser
问题是我似乎找不到使用文件下载头将cookie值发送回客户端的方法,如果我在标题中包含set-cookie它会破坏文件下载过程。
这是我当前的标题,有效:
Content-disposition: attachment; filename=$file; Content-type: $type\n\n$content
如果我这样做会打破:
Set-Cookie:$cookie; Content-disposition: attachment; filename=$file; Content-type: $type\n\n$content
我正在服务器上创建一个cookie,其中包含来自客户端的时间戳值:
$cookie = CGI::Cookie->new(-name=>'fileDownloadToken',-value=>"$token_value");
有没有人知道我应该怎么做,用Perl编码?
答案 0 :(得分:1)
好的,我想我已修好了。为了防止其他任何人遇到这种情况,它似乎是标题的格式,而不是使用单个字符串:
print qq(Content-disposition: attachment; filename=$file; Content-type: $type\n\n$content)
我用过这个:
print $page->header(
-'cookie' => "$cookie",
-'Content-disposition' => "attachment; filename=\"$file\"",
-'Content-type' => $content
);