php文件下載代碼怎麼寫,php實現下載文件

本文目錄一覽:

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給的參數不對了。

原創文章,作者:XYMA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140028.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XYMA的頭像XYMA
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

發表回復

登錄後才能評論