上传界面fileUpLoad.HTML
<form enctype="multipart/form-data" action="dofilePost.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
处理文件dofilePost.php
<?php
$uploaddir = "./files/";//设置文件保存目录 注意包含‘/’
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型
$patch="http://127.0.0.1/cr_downloadphp/upload/files/";//程序所在路径
//获取文件后缀名函数
function fileext($filename)
{
//该函数返回指定字符在该字符串最后出现的位置后的字符
return substr(strrchr($filename, '.'), 1);
}
//生成随机文件名函数 ,避免文件名重复,当然也可以使用原来的文件名,或者自定义文件名
function random($length)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
//从表单元素userfile中得到文件名称
$oldname = strtolower(fileext($_FILES['userfile']['name']));
//判断文件类型
if(!in_array($oldname,$type))
{
//将数组转换为字符串
$text=implode(",",$type);
echo "您只能上传以下类型文件: ",$text,"<br>";
}
//生成目标文件的文件名
else{
//将字符串转化为数组
$filename=explode(".",$_FILES['userfile']['name']);
do
{
//文件已经存在时,循环该段代码,产生随机的新的文件名称
$filename[0]=random(10); //设置随机数长度
$name=implode(".",$filename);//将数组转化为字符串
$uploadfile=$uploaddir.$name;//给文件加上路径
}while(file_exists($uploadfile));//判断文件是否存在
//将上传的备份文件,移动到指定的目录
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
//输出图片预览
echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>";
echo"<br><center><a href='javascript:history.go(-1)'>继续上传</a></center>";
}
else{
echo "上传失败!";
}
}
}
?>
PHP 支持同时上传多个文件并将它们的信息自动以数组的形式组织。要完成这项功能,您需要在 HTML 表单中对文件上传域使用类似于多下拉菜单和复选框的数组名称来提交
<form action="file-upload.php" method="POST" enctype="multipart/form-data">
Send these files:<br>
<input name="userfile[]" type="file"><br>
<input name="userfile[]" type="file"><br>
<input type="submit" value="Send files">
</form>
$_FILES['userfile']['size'][0] 将包含上传文件的大小,依此类推。
以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称如上例所示,为 userfile。名称可随意命名。
$_FILES['userfile']['name'] 客户端机器文件的原名称。
$_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size'] 已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error'] 和该文件上传相关的错误代码
文件上传使用到的函数
bool is_uploaded_file ( string filename):
如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE
bool move_uploaded_file ( string filename, string destination):
如果文件合法,则将其移动为由 destination 指定的文件。
如果 filename 不是合法的上传文件,不会出现任何操作,返回 FALSE,
如果目标文件已经存在,将会被覆盖。
分享到:
相关推荐
PHP文件上传类,自定义配置,包括单文件和多文件上传(检测文件大小,文件格式,文件重命名,错误返回,全部封装在一个类中)
php文件上传插件(简洁好用的上传插件)需要的赶快来下载
使用wamp集成工具,结合phpStrom写的PHP文件上传图片,上传后并在HTML页面上展示的例子
php文件上传函数,直接用就好了 觉得好用,就分享了
一个php文件上传处理类库
php文件上传进度条
php文件上传类,很简单的实例,是初学php的很好的参考资料
php文件上传代码
自己编写的php文件上传类,可以在配置文件中限制文件的数量、大小、目录和格式等等,在此分享给大家,希望能给我好的建议
强大的php文件上传类强大的php文强大的php文件上传类件上传类
PHP文件上传与下载学习笔记 PHP版本:1、文件上传配置 文件上传后,Php获取的上传文件的信息 PHP端config配置文件配置
PHP文件上传/PHP文件上传 PHP文件上传/PHP文件上传 PHP文件上传/PHP文件上传
uploaddify+php多文件上传,带进度条,经过自己测试,文件可以上传成功,可以进入uploaddify官网修改相关参数和代码,但在移动端似乎不能使用
php文件上传代码以及封装的上传类,<?php //接收 $username=$_POST['username']; $fileintro=$_POST['fileintro']; //echo $username.$fileintro; //获取文件信息 /* echo "<pre>"; print_r($_FILES); ...
通过php实现文件上传,可以将文件上传至服务器端
分享一个比较全面的php文件上传类,指定上传文件保存的路径,对上传文件初使化,查看用户参数中数组的下标是否和成员属性名相同。
PHP文件上传类源码PHP文件上传类源码
php文件上传类,能自定义上传文件类型,设置文件上传大小,能满足你所需求的
php文件上传,上传源码!~~php文件上传,上传源码!~~欢迎大家讨论
php文件上传类程序代码 public $max_size = '1000000';//设置上传文件大小 public $file_name = 'date';//重命名方式代表以时间命名,其他则使用给予的名称 public $allow_types;//允许上传的文件扩展名,不同...