lnmp上传文件
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>
<?php
if ($_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那里加入一些文件类型检测啊,文件头检测啊,禁止运行的限制,这些安全性或者功能限制等到有空我再补上来吧。
lnmp上传文件的更多相关文章
- LNMP 架构 上传文件
修改PHP上传文件大小限制的方法 修改PHP上传文件大小限制的方法1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.但在php中,默认的该页最久执行时间为 30 ...
- Nginx上传文件返回413的解决
通过http上传文件时返回403 Request Entity Too Large错误时,原因是默认设置的允许上传文件太小,默认是2M,如果上传文件大小大于2M时,那么就会返回413的错误,修改ngi ...
- Linux中ftp不能上传文件/目录的解决办法
在linux中不能上传文件或文件夹最多的问题就是权限问题,但有时也不一定是权限问题了,像我就是空间不够用了,下面我来总结一些ftp不能上传文件/目录的解决办法 在排除用户组和权限等问题后,最可能引 ...
- IE8/9 JQuery.Ajax 上传文件无效
IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...
- 三种上传文件不刷新页面的方法讨论:iframe/FormData/FileReader
发请求有两种方式,一种是用ajax,另一种是用form提交,默认的form提交如果不做处理的话,会使页面重定向.以一个简单的demo做说明: html如下所示,请求的路径action为"up ...
- asp.net mvc 上传文件
转至:http://www.cnblogs.com/fonour/p/ajaxFileUpload.html 0.下载 http://files.cnblogs.com/files/fonour/aj ...
- app端上传文件至服务器后台,web端上传文件存储到服务器
1.android前端发送服务器请求 在spring-mvc.xml 将过滤屏蔽(如果不屏蔽 ,文件流为空) <!-- <bean id="multipartResolver&q ...
- .net FTP上传文件
FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
随机推荐
- MySql数据库中敏感字段加密处理方案
比如数据表中有一个手机号码字段是敏感字段,不想明文存储,可以是用MySQL的自带的函数处理 Table 12.17 Encryption Functions Name Description AES_ ...
- FPGA配置方式
FPGA有多种配置/加载方式.粗略可以分为主动和被动两种.主动加载是指由FPGA控制配置流程,被动加载是指FPGA仅仅被动接收配置数据. 最常见的被动配置模式就是JTAG下载bit文件.此模式下,主动 ...
- C# winfrom ComboBox 调整下拉菜单的高度
1.设置属性 // 1.属性设置 DrawMode ->OwnerDrawVariable this.cboBoxPostID.DrawMode = System.Windows.Forms.D ...
- JAVA URI URL 区别
String urlString = "http://192.168.21.77:8080/swp/mainPage?aa=11&bb%3D22"; URI uri = U ...
- java 调用windows bat脚本
当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...
- python selenium 问题汇总
FAQ 1.python+selenium+Safari浏览器,定位元素 selenium.common.exceptions.ElementNotVisibleException: Message: ...
- [UE4]FString常用API
转自:http://aigo.iteye.com/blog/2279808 将int或float转换为string: 将FString转换为char*: 将string转换为int或者float: 字 ...
- guess_age
age_shanshan = 18count = 3num = 0while num < count: age = int(input("age:")) if age == ...
- android studio 简介 (上)
自从android官方宣布不再提供eclipse adt的更新之后,android studio的推进速度超乎想象得快,不管是github上的源码分享,还是stackoverflow上的问题提问,几乎 ...
- HTML5中常用的标签(及标签的属性和作用)
1.标签:<!DOCTYPE>作用:声明是文档中的第一成分,位于<html>标签之前. 2.标签:<html>作用:此元素可告知浏览器其自身是一个HTML文档.属性 ...