openSUSE之PHP学习之旅(4、文件上传)

本文提供了一个简单的PHP文件上传示例代码,并介绍了如何处理上传过程中的常见错误,包括修改php.ini设置文件大小限制及解决Linux环境下文件夹权限问题。

写一个简单的PHP上传代码。代码如下:

<?php
//0; 文件上传成功。
//1; 超过了文件大小php.ini中。
//2; 超过了文件大小 MAX_FILE_SIZE 选项指定的值。
//3; 文件只有部分被上传。
//4; 没有文件被上传。
//5; 上传文件大小为0。

if (is_uploaded_file($_FILES['upfile']['tmp_name'])){

$upfile=$_FILES["upfile"];

$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
echo "错误代码:".$error."<br>";
echo "临时文件名:".$tmp_name."<br>";
echo "文件大小:".$size."<br>";
echo "MIME类型:".$type."<br>";
echo "原名称:".$name."<br>";

move_uploaded_file($tmp_name,'uploadimg/'.$name);
echo "上传成功";

}


?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<!-- 注意加上,不然页面访问会出现乱码-->
<form action="" enctype="multipart/form-data" method="post" name="upform">
  上传文件:
  <input name="upfile" type="file">
  <input type="submit" value="上传"><br>
</form>

有两个问题需要注意的:

1.代码并没有任何格式或大小的限制,但php.ini本身就已经限制了2M的大小

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

所以可以修改

2.代码里

move_uploaded_file($tmp_name,'uploadimg/'.$name);

指定 uploadimg 目录,而一般我们在linux下新建之后由于权限不足会导致上传失败。

所以手动来创建文件夹并修改权限

linux-k2b4:/srv/www/htdocs/php # mkdir uploadimg
linux-k2b4:/srv/www/htdocs/php # chmod -R 777 uploadimg/

之后代码就可以成功运行了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值