[{"data":1,"prerenderedAt":148},["ShallowReactive",2],{"content:\u002Fpost\u002Fphp-file-upload":3,"surround:\u002Fpost\u002Fphp-file-upload":142},{"id":4,"title":5,"body":6,"categories":119,"date":121,"description":122,"draft":123,"extension":124,"image":125,"meta":126,"navigation":128,"path":129,"permalink":125,"published":125,"readingTime":130,"recommend":125,"references":125,"seo":135,"sitemap":136,"stem":137,"tags":138,"type":139,"updated":140,"__hash__":141},"content\u002Fpost\u002Fphp-file-upload.md","PHP文件上传",{"type":7,"value":8,"toc":116},"minimark",[9,13,24,29,32,38,45,62,71,77,83,86,92,100,107,113],[10,11,12],"p",{},"文件目录：",[14,15,20],"pre",{"className":16,"code":18,"language":19},[17],"language-text",".\u002Fupload\n.\u002Fupload.php\n.\u002Fform.html\n","text",[21,22,18],"code",{"__ignoreMap":23},"",[25,26,28],"h1",{"id":27},"_1创建一个文件上传表单","1.创建一个文件上传表单",[10,30,31],{},"代码如下",[14,33,36],{"className":34,"code":35,"language":19},[17],"\u003Chtml>\n\u003Chead>\n\u003Cmeta charset=\"utf-8\">\n\u003Ctitle>haihaihai\u003C\u002Ftitle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003Cform action=\"upload.php\" method=\"post\" enctype=\"multipart\u002Fform-data\">\n\u003Clabel for=\"file\">文件名：\u003C\u002Flabel>\n\u003Cinput type=\"file\" name=\"file\" id=\"file\">\u003Cbr>\n\u003Cinput type=\"submit\" name=\"submit\" value=\"提交\">\n\u003C\u002Fform>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n",[21,37,35],{"__ignoreMap":23},[10,39,40,41,44],{},"将文件命名为",[21,42,43],{"code":43},"form.html","。",[46,47,48],"blockquote",{},[10,49,50,53,54,57,58,61],{},[21,51,52],{"code":52},"\u003Cform>"," 标签的 ",[21,55,56],{"code":56},"enctype"," 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时，比如文件内容，请使用 \"",[21,59,60],{"code":60},"multipart\u002Fform-data","\"。",[10,63,64,53,67,70],{},[21,65,66],{"code":66},"\u003Cinput>",[21,68,69],{"code":69},"type=\"file\""," 属性规定了应该把输入作为文件来处理。举例来说，当在浏览器中预览时，会看到输入框旁边有一个浏览按钮。",[10,72,73,74],{},"创建",[21,75,76],{"code":76},"upload.php",[14,78,81],{"className":79,"code":80,"language":19},[17],"\u003C?php\nif ($_FILES[\"file\"][\"error\"] > 0)\n{\necho \"错误：\" . $_FILES[\"file\"][\"error\"] . \"\u003Cbr>\";\n}\nelse\n{\necho \"上传文件名: \" . $_FILES[\"file\"][\"name\"] . \"\u003Cbr>\";\necho \"文件类型: \" . $_FILES[\"file\"][\"type\"] . \"\u003Cbr>\";\necho \"文件大小: \" . ($_FILES[\"file\"][\"size\"] \u002F 1024) . \" kB\u003Cbr>\";\necho \"文件临时存储的位置: \" . $_FILES[\"file\"][\"tmp_name\"];\n}\n?>\n",[21,82,80],{"__ignoreMap":23},[10,84,85],{},"我们可以给表单添加限制：",[14,87,90],{"className":88,"code":89,"language":19},[17],"\u003C?php\n$allowedExts = array(\"gif\", \"jpeg\", \"jpg\", \"png\");\n$temp = explode(\".\", $_FILES[\"file\"][\"name\"]);\n$extension = end($temp);        \u002F\u002F 获取文件后缀名\nif ((($_FILES[\"file\"][\"type\"] == \"image\u002Fgif\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fjpeg\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fjpg\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fpjpeg\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fx-png\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fpng\"))\n&& ($_FILES[\"file\"][\"size\"] \u003C 204800)    \u002F\u002F 小于 200 kb\n&& in_array($extension, $allowedExts))\n{\nif ($_FILES[\"file\"][\"error\"] > 0)\n{\necho \"错误：: \" . $_FILES[\"file\"][\"error\"] . \"\u003Cbr>\";\n}\nelse\n{\necho \"上传文件名: \" . $_FILES[\"file\"][\"name\"] . \"\u003Cbr>\";\necho \"文件类型: \" . $_FILES[\"file\"][\"type\"] . \"\u003Cbr>\";\necho \"文件大小: \" . ($_FILES[\"file\"][\"size\"] \u002F 1024) . \" kB\u003Cbr>\";\necho \"文件临时存储的位置: \" . $_FILES[\"file\"][\"tmp_name\"];\n}\n}\nelse\n{\necho \"文件超过限制\";\n}\n?>\n",[21,91,89],{"__ignoreMap":23},[10,93,94,95,99],{},"上面的文件在服务器的 PHP 临时文件夹中创建了一个被上传文件的",[96,97,98],"strong",{},"临时","副本。",[10,101,102,103,106],{},"这个临时的副本文件会在脚本结束时消失。要保存被上传的文件，我们需要把它",[96,104,105],{},"拷贝","到另外的位置：",[14,108,111],{"className":109,"code":110,"language":19},[17],"\u003C?php\n$allowedExts = array(\"gif\", \"jpeg\", \"jpg\", \"png\");\n$temp = explode(\".\", $_FILES[\"file\"][\"name\"]);\necho $_FILES[\"file\"][\"size\"];\n$extension = end($temp);     \u002F\u002F 获取文件后缀名\nif ((($_FILES[\"file\"][\"type\"] == \"image\u002Fgif\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fjpeg\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fjpg\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fpjpeg\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fx-png\")\n|| ($_FILES[\"file\"][\"type\"] == \"image\u002Fpng\"))\n&& ($_FILES[\"file\"][\"size\"] \u003C 204800)   \u002F\u002F 小于 200 kb\n&& in_array($extension, $allowedExts))\n{\nif ($_FILES[\"file\"][\"error\"] > 0)\n{\necho \"错误：: \" . $_FILES[\"file\"][\"error\"] . \"\u003Cbr>\";\n}\nelse\n{\necho \"上传文件名: \" . $_FILES[\"file\"][\"name\"] . \"\u003Cbr>\";\necho \"文件类型: \" . $_FILES[\"file\"][\"type\"] . \"\u003Cbr>\";\necho \"文件大小: \" . ($_FILES[\"file\"][\"size\"] \u002F 1024) . \" kB\u003Cbr>\";\necho \"文件临时存储的位置: \" . $_FILES[\"file\"][\"tmp_name\"] . \"\u003Cbr>\";\n\u002F\u002F 判断当期目录下的 upload 目录是否存在该文件\n\u002F\u002F 如果没有 upload 目录，你需要创建它，upload 目录权限为 777\nif (file_exists(\"upload\u002F\" . $_FILES[\"file\"][\"name\"]))\n{\necho $_FILES[\"file\"][\"name\"] . \" 文件已经存在。 \";\n}\nelse\n{\n\u002F\u002F 如果 upload 目录不存在该文件则将文件上传到 upload 目录下\nmove_uploaded_file($_FILES[\"file\"][\"tmp_name\"], \"upload\u002F\" . $_FILES[\"file\"][\"name\"]);\necho \"文件存储在: \" . \"upload\u002F\" . $_FILES[\"file\"][\"name\"];\n}\n}\n}\nelse\n{\necho \"文件超过限制\";\n}\n?>\n",[21,112,110],{"__ignoreMap":23},[10,114,115],{},"此教程完结。",{"title":23,"searchDepth":117,"depth":117,"links":118},4,[],[120],"开发","2024-06-23 11:03:00","PHP 文件上传入门教程：从编写 HTML 上传表单（form.html）讲起，详解 enctype 与 file 控件的作用，再到 upload.php 中的错误判断、类型与大小限制校验，以及用 move_uploaded_file 保存文件的完整实现。",false,"md",null,{"slots":127},{},true,"\u002Fpost\u002Fphp-file-upload",{"text":131,"minutes":132,"time":133,"words":134},"4 min read",3.28,196800,656,{"title":5,"description":122},{"loc":129},"post\u002Fphp-file-upload",[],"tech","2026-07-26 16:14:48","fLANy3KvmmzQZsHcdJR7CR3oo6k2QCQnJMc9YyjmYS0",[125,143],{"title":144,"path":145,"stem":146,"date":147,"type":139,"children":-1},"必应网站管理员工具的使用","\u002Fpost\u002Fbing-webmaster-tools","post\u002Fbing-webmaster-tools","2024-06-23 21:32:00",1793526967970]