您的位置:首页 > 编程语言 > PHP开发

window平台直接访问unix中文文件路径时的变通方法,使用php发送

2010-03-02 20:24 1001 查看
测试了一下,ie总是使用utf8来访问中文 路径的文件,这时,空间会提示找不到文件.

现在使用变通方法后,可以直接在ie上使用中文路径文件了

test.php

放到目录下

此目录中有一中文目录,在这中文目录中有中文名字mp3

打开test.php后,发现点击 中文路径.xx.mp3时可以下载了.而不是提示找不到文件.

<?php

header('Content-Type: text/html;charset=gb2312');
$p_f = dirname(_FILE_);
echo getPath($p_f.'/中文');

function getPath($path )
{
//$path = code2code($_REQUEST["scanfpath"], $GLOBALS["sysCode"], mb_detect_encoding($_REQUEST["scanfpath"]));
echo $path .'下的目录<BR>';
if (false == file_exists($path))
{
return "列举目录内容出错:[". $path . "]文件夹不存在.";
}else if (false == ($pathA = scandir($path)))
{
return "获取[". $path . "]的子目录和文件失败.";
}

$folderText = "";
$fileText = "";

for ($forI = 0; $forI < count($pathA); $forI++)
{
if (($pathA[$forI] <> ".") && ($pathA[$forI] <> ".."))
{
if (is_dir($path . $pathA[$forI]))
{//文件夹
$folderText .= $pathA[$forI].'|';
}else
{//文件
$fileText .=  '<a href="s_f.php?path='.$path.'/'.$pathA[$forI].'" mce_href="s_f.php?path='.$path.'/'.$pathA[$forI].'" target=_blank>'.$path.'/'.$pathA[$forI].'</a>|';
}
}
}

return $folderText . $fileText;
}
?>


s_f.php

发送中文文件的php

<?php
$path = $_GET['path'];
if (trim($path)=="")
{
exit("no empty path.");
}

if (!file_exists($path))
{
exit("can't found path.");
}

header("Content-Disposition:attachment; filename=$path");
header("Content-Transfer-Encoding: binary");
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 2009 05:00:00 GMT"); // Date in the past
header('Content-type: audio/mp3');
header('Content-length: ' . filesize($path));

print file_get_contents($path);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐