本文目录一览:
php中让文件循环下载的代码怎么写?
自己写的方法 但是在中文路径下会 出现错误
/*
*查看问价夹中的子文件及其子文件夹
*$path 付文件夹路径
*return $arr_dir 文件夹中所有文件和子文件夹的信息
*/
function selDir($path){
$arr_dir = array();
if(is_file($path)){
header("Location: error.php");
exit;
}
$arr_dir = scandir($path);
foreach ($arr_dir as $v){
if($v != "." $v != ".."){
//print "hr".$path.$v;
if(is_dir($path.'/'.$v)){
//print "hr是文件夹hr";
$arr_dir['dir'][] = array(
'fileUrl' = $path.'/'.$v,
'filename' = $v,
'type' = '文件夹',
'cTime' = @date('Y/m/d H:i',filectime($path.'/'.$v)+8*3600),
'mTime' = @date('Y/m/d H:i',filemtime($path.'/'.$v)+8*3600),
'filesize' = ' '
);
}else{
//print "hr不是是文件夹hr";
$arr_dir['file'][] = array(
'fileUrl' = $path.'/'.$v,
'filename' = $v,
'type' = pathinfo($path.'/'.$v, PATHINFO_EXTENSION),
'cTime' = @date('Y/m/d H:i',filectime($path.'/'.$v)+8*3600),
'mTime' = @date('Y/m/d H:i',filemtime($path.'/'.$v)+8*3600),
'filesize' = filesize($path.'/'.$v)
);
}
}
}
//var_dump($arr_dir);
return $arr_dir;
}
php实现文件下载代码~
echo "a href='$file'".$file."/a"需要绝对路径,而且注意目录是不可以下载的。
?php
$root="d:/";
if(is_dir($root)){
$openHandle=opendir($root);
while(false!==($file=readdir($openHandle))){
if(!is_dir($root.$file))
echo "a href='$root$file'".$file."/abr/";
}
closedir($openHandle);
}
else {
echo "文件夹不存在";
}
?
用PHP写下载文件的那部分代码
问题一:你在查询目录文件时同时生成一个累加的数值。GET带过这个数值就可以了。提交以后,同一目录下再次查询目录生成的列表相同,所以这个 GET 值能对应文件的。。
问题二:问题出在下列代码处。
$file=$filename;
$filename = "./download/".$file;
$downfilename = $file;
一开始的时候 $filename 为空值。所以 $file ='' 接下来是 $downfilename = $file; 因为 $file 为空值。所以 $downfilename 同样也为空值。然后下面的下载就会返回当前文件做为下载对象。也就是 PHP文件本身。
问题三:因为你提供下载的时候。使用的类型是数据流。而不是文件类型。浏览器不能确认该文件的打开方式。所以只能下载完以后再打开。如果你这么写:
Header("Content-type: text/html");
那浏览器就会使用 IE 或默认浏览器打开了。其他文件同样道理。你可以用 filetype() 函数取得文件类型。
宗合一下:两个文件的代码可以合成一个。这里明显地址栏区别在于。列表页没有 GET 变量。所以你可以用以下判断来完成:
if(!is_set($_GET['filename']))
{
//这里放文件例表的代码。
}else{
//这里放文件下载代码。
}
用php如何写下载文件代码;都说非常简单,几行代码就行,可是我写的为何就是有错呢?
filename=??是文件名或者文件别名,这个是下载是保存文件的默认文件名,不要带上路径;readfile("")是实际的文件,就是路径加上文件名,不一定是绝对路径了。filename给的参数不对了。