文件上传功能在web开发中是很常见的功能,aopli在实习的时候也越到这样的问题,但是之前都是用asp和jsp开发的,asp和jsp实现文件上传是比较麻烦的,但是在php中感觉比较简单。下面就简单的介绍下代码:
先说明,我实现的是上传xls文件,可以根据自己的需要来更改,首先就是在表单上添加enctype="multipart/form-data",我想这个问题,我应该不用再重复了,然后添加一个文件域,我这里命名为file,如下:<input name="file" type="file" />,然后就是提交到处理的页面,下面是处理的代码:
需要说名的是:
获得的参数:
- $_FILES["file"]["name"] - 被上传文件的名称
- $_FILES["file"]["type"] - 被上传文件的类型
- $_FILES["file"]["size"] - 被上传文件的大小,以字节计
- $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
- $_FILES["file"]["error"] - 由文件上传导致的错误代码
这是所有的参数,可以根据自己的要求来更改,比如需要上传doc文件,就把type改下,第一个参数file是文件域的名字。
if (! empty ( $_FILES ['file'] ['name']))
{
$tmp_file = $_FILES ['file'] ['tmp_name'];
$file_types = explode (".",$_FILES ['file'] ['name'] );
$file_type = $file_types[count( $file_types)-1];
if (strtolower( $file_type ) != "xls")
{
echo("不是Excel文件,重新上传");
}
$savePath = 'public/upload/excel/';
$str = date ( 'Ymdhis' );
$file_name = $str . "." . $file_type;
if (! copy ($tmp_file, $savePath.$file_name))
{
echo("failed");
}
else
{
echo($savePath . $file_name);
echo("success<br>");
}
}
最后就是设置路径的时候一定要正确,如果出现success,多检查下服务器的目录,应该是上传成功了,但不一定是你想要上传的目录。