您的位置:首页 > 编程语言 > PHP开发

php文件上传

2016-05-30 10:54 393 查看

1、服务器端配置

在进行文件上传时需要先配置一下服务器,开启文件上传、指定上传文件的max_size,上传的文件保存的临时目录等。因为文件是采用post方式进行上传的所以,需要修改一下post的大小

编辑php.ini

  


 


2、客户端页面

错误的方式

<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="test.php" method="post">
<input type="text" name="id">
<input type="file" name="sql">
<button type="submit">上传</button>
</form>
</body>
</html>


上面的代码提交的服务器时是拿不到上传的文件的,我们先看看执行结果。 <?php print_r($_POST)?>;



我们在服务器只拿到了文件的名称,而并未得到文件的真的内容

正确的方式

<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="text" name="id">
<input type="file" name="sql">
<button type="submit">上传</button>
</form>
</body>
</html>


服务器端代码 <?php print_r($_POST); echo '<br>'; print_r($_FILES);



多文件上传

<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="text" name="id">
<input type="file" name="sql[]">
<input type="file" name="sql[]">
<button type="submit">上传</button>
</form>
</body>
</html>


服务器端代码不变,其执行结果为:



3、服务器文件上传

<?php
//错误检查
if($_FILES['sql']['error'] > 0){
exit(0);
}

//文件大小检查
$maxSize = 5*1024*1024;
if($_FILES['sql']['size'] > $maxSize){
exit(0);
}

//文件类型检测,以后缀名检测
$allowType = 'sql';
$arr = explode('.', $_FILES['sql']['name']);
$hz = $arr[count($arr)-1];
if($hz != $allowType){
echo 'file type error';
exit(0);
}

$filepath = './uploads';
$randname=data('Y').data('m').data('d').data('H').data('i').data('s').rand(100, 999).$hz;
//将文件从临时目录取出
if(is_uploaded_file($_FILES['sql']['tmp_name'])){
if(move_uploaded_file($_FILES['sql']['tmp_name'], './uploads/'.$_FILES['sql']['name']))
echo '上传成功';
else
echo "上传失败";
}


注意上面这些代码是文件已经完全上传到服务器才执行的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: