openSUSE之PHP学习之旅(4、文件上传)
写一个简单的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/
之后代码就可以成功运行了。