enctype
属性为multipart/form-data
。,2. 使用
标签让用户选择文件。,3. 在PHP脚本中,通过全局数组$_FILES
接收上传的文件。,4. 使用move_uploaded_file()
函数将文件移动到目标目录。,5. 进行必要的文件验证和安全检查。,,示例代码:,,“html,,
,
`,,
`php,// PHP部分 (upload.php),if(isset($_POST['submit'])){, $target_dir = "uploads/";, $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);, if(move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {, echo "文件 ". basename( $_FILES["fileToUpload"]["name"]). " 已经上传.";, } else {, echo "上传失败.";, },},
“PHP 文件上传
在PHP中,我们可以使用全局数组 $_FILES 来上传文件,这个超全局变量 $_FILES 用来收集通过 HTTP POST 方法上传的文件的相关信息。
基本步骤
1、创建一个 HTML 表单并设置 enctype
属性为 multipart/formdata
。
2、在表单中添加一个 <input type="file">
元素以选择文件。
3、使用 PHP 的 $_FILES
超全局变量处理上传的文件。
示例代码
HTML 部分
<form action="upload.php" method="post" enctype="multipart/formdata"> 请选择要上传的文件: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="上传文件" name="submit"> </form>
PHP 部分 (upload.php)
<?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); // 检查文件是否是一个实际的图片或假图片 if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "文件是一张图片 " . $check["mime"] . "."; $uploadOk = 1; } else { echo "文件不是一张图片。"; $uploadOk = 0; } } // 检查是否已经存在同名文件 if (file_exists($target_file)) { echo "抱歉,已经存在同名文件。"; $uploadOk = 0; } // 限制文件大小 if ($_FILES["fileToUpload"]["size"] > 500000) { echo "对不起,你的文件太大了。"; $uploadOk = 0; } // 如果一切顺利,尝试上传文件 if ($uploadOk == 0) { echo "抱歉,你的文件无法被上传。"; // 如果有任何错误,就显示错误信息 } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "文件已经成功上传。"; } else { echo "抱歉,由于您的问题,文件无法被上传。"; } } ?>
相关问题与解答
Q1: PHP 中的 $_FILES 是什么?
A1: $_FILES 是一个超全局变量,用于收集通过 HTTP POST 方法上传的文件的相关信息。
Q2: move_uploaded_file() 函数的作用是什么?
A2: move_uploaded_file() 函数把上传的文件移动到新的位置,这个函数需要两个参数:源文件路径和目标文件路径,源文件路径可以是从 $_FILES 超全局变量获得的 ‘tmp_name’ 索引。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。