[{"data":1,"prerenderedAt":232},["ShallowReactive",2],{"blog:\u002Fblog\u002F2015\u002F08\u002F31\u002Fphp-download-hide-real-location\u002F":3},{"id":4,"title":5,"body":6,"categories":217,"comments":219,"date":220,"description":221,"draft":222,"extension":223,"legacySlug":224,"meta":225,"navigation":219,"path":226,"seo":227,"stem":228,"tags":229,"updated":230,"__hash__":231},"blog\u002Fblog\u002F2015\u002F08\u002F31\u002Fphp-download-hide-real-location.md","PHP下载文件（隐藏真实的下载地址）",{"type":7,"value":8,"toc":215},"minimark",[9,13,16,135,138,140,208,211],[10,11,12],"p",{},"有时我们需要隐藏真实的文件下载地址，防止恶意下载，我们可以采用下面的方法（参考网络，侵权请告知）",[10,14,15],{},"以下为引用的内容：",[17,18,23],"pre",{"className":19,"code":20,"language":21,"meta":22,"style":22},"language-php shiki shiki-themes github-light github-dark","\u003C?php\n$file_name = \"example.exe\";\n$file_dir = \"\u002Fpublic\u002Fwww\u002Fdownload\u002F\";\nif (! file_exists($file_dir . $file_name)) { \u002F\u002F检查文件是否存在\n    echo \"文件未找到\";\n    exit;\n} else {\n    $file = fopen($file_dir . $file_name, \"r\"); \u002F\u002F 打开文件\n    \u002F\u002F 输入文件标签\n    Header(\"Content-type: application\u002Foctet-stream\");\n    Header(\"Accept-Ranges: bytes\");\n    Header(\"Accept-Length: \".filesize($file_dir . $file_name));\n    Header(\"Content-Disposition: attachment; filename=\" . $file_name);\n    \u002F\u002F 输出文件内容\n    echo fread($file, filesize($file_dir . $file_name));\n    fclose($file);\n    exit;\n}\n","php","",[24,25,26,34,40,46,52,58,64,70,76,82,88,94,100,106,112,118,124,129],"code",{"__ignoreMap":22},[27,28,31],"span",{"class":29,"line":30},"line",1,[27,32,33],{},"\u003C?php\n",[27,35,37],{"class":29,"line":36},2,[27,38,39],{},"$file_name = \"example.exe\";\n",[27,41,43],{"class":29,"line":42},3,[27,44,45],{},"$file_dir = \"\u002Fpublic\u002Fwww\u002Fdownload\u002F\";\n",[27,47,49],{"class":29,"line":48},4,[27,50,51],{},"if (! file_exists($file_dir . $file_name)) { \u002F\u002F检查文件是否存在\n",[27,53,55],{"class":29,"line":54},5,[27,56,57],{},"    echo \"文件未找到\";\n",[27,59,61],{"class":29,"line":60},6,[27,62,63],{},"    exit;\n",[27,65,67],{"class":29,"line":66},7,[27,68,69],{},"} else {\n",[27,71,73],{"class":29,"line":72},8,[27,74,75],{},"    $file = fopen($file_dir . $file_name, \"r\"); \u002F\u002F 打开文件\n",[27,77,79],{"class":29,"line":78},9,[27,80,81],{},"    \u002F\u002F 输入文件标签\n",[27,83,85],{"class":29,"line":84},10,[27,86,87],{},"    Header(\"Content-type: application\u002Foctet-stream\");\n",[27,89,91],{"class":29,"line":90},11,[27,92,93],{},"    Header(\"Accept-Ranges: bytes\");\n",[27,95,97],{"class":29,"line":96},12,[27,98,99],{},"    Header(\"Accept-Length: \".filesize($file_dir . $file_name));\n",[27,101,103],{"class":29,"line":102},13,[27,104,105],{},"    Header(\"Content-Disposition: attachment; filename=\" . $file_name);\n",[27,107,109],{"class":29,"line":108},14,[27,110,111],{},"    \u002F\u002F 输出文件内容\n",[27,113,115],{"class":29,"line":114},15,[27,116,117],{},"    echo fread($file, filesize($file_dir . $file_name));\n",[27,119,121],{"class":29,"line":120},16,[27,122,123],{},"    fclose($file);\n",[27,125,127],{"class":29,"line":126},17,[27,128,63],{},[27,130,132],{"class":29,"line":131},18,[27,133,134],{},"}\n",[10,136,137],{},"而如果文件为远程文件，则原始码会有少许改动，程式如下：",[10,139,15],{},[17,141,143],{"className":19,"code":142,"language":21,"meta":22,"style":22},"\u003C?php\n$file_name = \"example.exe\";\n$file_dir = \"http:\u002F\u002Fback.zhizhi123.com\u002F\";\n$file = @ fopen($file_dir . $file_name, \"r\");\nif (! $file) {\n    echo \"文件未找到\";\n} else {\n    Header(\"Content-type: application\u002Foctet-stream\");\n    Header(\"Content-Disposition: attachment; filename=\" . $file_name);\n    while (!feof ($file)) {\n        echo fread($file,50000);\n    }\n    fclose ($file);\n}\n",[24,144,145,149,153,158,163,168,172,176,180,184,189,194,199,204],{"__ignoreMap":22},[27,146,147],{"class":29,"line":30},[27,148,33],{},[27,150,151],{"class":29,"line":36},[27,152,39],{},[27,154,155],{"class":29,"line":42},[27,156,157],{},"$file_dir = \"http:\u002F\u002Fback.zhizhi123.com\u002F\";\n",[27,159,160],{"class":29,"line":48},[27,161,162],{},"$file = @ fopen($file_dir . $file_name, \"r\");\n",[27,164,165],{"class":29,"line":54},[27,166,167],{},"if (! $file) {\n",[27,169,170],{"class":29,"line":60},[27,171,57],{},[27,173,174],{"class":29,"line":66},[27,175,69],{},[27,177,178],{"class":29,"line":72},[27,179,87],{},[27,181,182],{"class":29,"line":78},[27,183,105],{},[27,185,186],{"class":29,"line":84},[27,187,188],{},"    while (!feof ($file)) {\n",[27,190,191],{"class":29,"line":90},[27,192,193],{},"        echo fread($file,50000);\n",[27,195,196],{"class":29,"line":96},[27,197,198],{},"    }\n",[27,200,201],{"class":29,"line":102},[27,202,203],{},"    fclose ($file);\n",[27,205,206],{"class":29,"line":108},[27,207,134],{},[10,209,210],{},"这样就能用PHP直接输出文件了。",[212,213,214],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":22,"searchDepth":36,"depth":36,"links":216},[],[218],"PHP",true,"2015-08-31 20:40:24","有时我们需要隐藏真实的文件下载地址，防止恶意下载，我们可以采用下面的方法（参考网络，侵权请告知） 以下为引用的内容： 而如果文件为远程文件，则原始码会有少许改动，程式如下： 以下为引用的内容： 这样就能用PHP直接输出文件了。",false,"md","php-download-hide-real-location",{},"\u002Fblog\u002F2015\u002F08\u002F31\u002Fphp-download-hide-real-location",{"title":5,"description":221},"blog\u002F2015\u002F08\u002F31\u002Fphp-download-hide-real-location",[218],null,"pBb5Cw9uSs8J5JKrB0B9NxNC3b-QrwKj4C6EHLzreHQ",1783807996125]