0

当我如下传递变量时..

var file_path = "/admin/upload/rec1.20130522_003928.f4v";
...
ifrm.src = download.php?file_path=" + file_path;

它显示链接为

_admin_upload_rec1.20130522_003928.f4​​v

(捕获:http ://screencast.com/t/ooQHLdr5cixz )

我该如何解决这个问题?谢谢

4

2 回答 2

1

据推测,在您发送文件的脚本中,您还发送了一个Content-Disposition标头,告诉浏览器这是下载,而不是立即尝试显示的资源。我假设您也在$_GET['file_path']该标题中作为文件名发送。

当您发送该标头时,请不要包含目录部分。浏览器会对目录部分做任何他们想做的事情,从剥离它到修改它。他们几乎唯一不会做的事情(出于安全原因)实际上是将其用作目录名称。

您可以使用类似的方式发送基本文件名

$path_parts = preg_split(':[/\\]+:', $_GET['file_path']);
$filename = addslashes(end($path_parts));
header("Content-Disposition: attachment; filename=\"$filename\""); 
于 2013-07-02T19:06:18.833 回答
0

试试这个:var file_path = "\admin\upload\rec1.20130522_003928.f4v"; ... ifrm.src = download.php?file_path=" + file_path;代替。

于 2013-06-29T00:30:50.540 回答