PHP文件上传小结(乱码,移动失败,权限,显示图片)
来源:互联网 发布:旅行软件排行 编辑:程序博客网 时间:2024/05/29 04:51
LAMP环境:
Linux mint 16 32bits xfce
apache 2.4.6 Ubuntu
php 5.5.3
默认www是/var/www,我用符号连接到了/home/tony/www
然后修改sudo chmod 777 www
上传页面代码:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><form action="upload_file.php" method="post"enctype="multipart/form-data"><label for="file">Filename:</label><input type="file" name="file" id="file" /> <br /><input type="submit" name="submit" value="Submit" /></form></body></html>
这个代码要加head指明字符集,下面的代码同理
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><?phpif ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; }else { echo "Upload: " .$_FILES["file"]["name"]. "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]."<br />"; } if(is_uploaded_file($_FILES["file"]["tmp_name"])){ echo "legal uploaded file<br>"; }else echo "illegai uploaded file<br>"; $src_path= $_FILES["file"]["tmp_name"]; $des_path= '/home/tony/www/upload/'."a.jpg"; //$des_path= '/home/tony/www/upload/'.$_FILES["file"]["name"]; echo $src_path . "<br />"; echo $des_path . "<br />"; if(file_exists($src_path)){ echo "file exists.<br />"; } if(move_uploaded_file($src_path,$des_path)){ echo "Stored in: "."<br />"; }else echo"<br>move failed.";printf("<img src=%s />","upload/a.jpg");?>
这段出来代码冗杂,不美观。但是说明了一些问题。
1/还是要指定字符集,不然在不同的浏览器或者系统上会有问题,apache2的配置文件不要AddDefaultCharset功能,如果改动过请改为AddDefaultCharset Off;重启apache2
2/临时文件在php执行之后就会消失,肉眼难见,可以在最后来个while(1);
3/有人问为什么不可以用其他函数来转移上传的文件呢?既然我都有路径了。http这套上传机制可以保证一定安全性,如果你能验证上传的安全性,其他函数也可以胜任
4/我老是move不成功,后来几经调查,是新的路径没有权限,都是linux的安全性惹的祸。试过用chmod -R 777 www,发现其下upload没有获得777的权限。。。这是bug?重新对upload改权限即可
最后插入图片用绝对路径不行,要用相对路径,到现在我都不明白为什么
应该在上传处理php那里加入一些文件类型检测啊,文件头检测啊,禁止运行的限制,这些安全性或者功能限制等到有空我再补上来吧。
20140309 21:02
0 0
- PHP文件上传小结(乱码,移动失败,权限,显示图片)
- PHP文件上传: move_uploaded_file函数移动文件失败
- PHP Fckeditor上传文件(或图片)中文显示为乱码的解决方法
- php fckeditor 上传文件(或图片)中文显示为乱码的解决方法(两种方法)
- PHP Fckeditor上传文件(或图片)中文显示为乱码的解决方法
- 上传文件图片失败
- PHP上传文件失败?
- PHP上传文件失败
- PHP 文件上传失败
- PHP文件(图片)上传
- cuteftp上传文件失败,提示权限失败
- Struts2上传图片文件失败
- ubuntu php上传文件失败
- PHP上传图片文件
- php 文件上传图片
- php上传文件图片
- php文件上传 中文名称乱码
- 解决PHP move_uploaded_file函数移动图片失败
- Linux 内核中的 Device Mapper 机制
- misi-game
- php错误处理和php异常处理机制
- VS2010 webservice 添加web引用
- CocoaPods告别小蚂蚁式编程
- PHP文件上传小结(乱码,移动失败,权限,显示图片)
- 快速幂取模&&素数筛选&&最大公约数
- 广告时间
- 一个登陆界面
- 数的长度
- 有一种忧国忧民叫扯蛋
- 黑马程序员之交通灯管理系统学习
- Python中多线程与同步
- 三个月后再次步入职场