`
fenhonghai
  • 浏览: 15387 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

php文件上传

    博客分类:
  • PHP
阅读更多
上传界面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编程中,文件上传是常见的功能之一,用于让用户上传图片、文档等文件到服务器。为了简化这个过程,开发者通常会编写一个专门的文件上传类,以实现对上传过程的全面控制和错误处理。以下是对"PHP文件上传类"的...

    php文件上传插件(简洁好用的上传插件)

    首先,你需要将压缩包中的PHP文件解压到你的项目目录中。然后,在需要实现文件上传功能的PHP脚本中引入该插件,通过调用其提供的函数来完成文件的接收、验证和保存。例如: ```php require_once 'path/to/upload....

    PHP文件上传和页面展示

    在PHP中,文件上传是一项常见的功能,特别是在网页应用中,如图像上传、文档分享等。本教程将通过WAMP(Windows、Apache、MySQL、PHP)集成环境和PHPStorm IDE,来讲解如何实现PHP文件上传,并在HTML页面上展示上传...

    uploaddify+php文件上传,可传多文件以及带进度条

    标题中的"uploaddify+php文件上传"指的是一个基于Uploaddify插件和PHP技术实现的文件上传系统。Uploaddify是一款JavaScript库,主要用于处理文件上传操作,尤其适用于那些希望在用户端显示上传进度条的Web应用。这个...

    一个php文件上传处理类库

    在PHP编程中,文件上传是常见的功能之一,用于让用户上传图片、文档等文件到服务器。这个"一个php文件上传处理类库"显然提供了一个方便、高效的方式来管理这种操作。类库通常封装了复杂的细节,使得开发者可以更简单...

    php文件上传,自己写的文件上传类,附带一个demo,欢迎大牛们提出意见和建议

    在PHP开发中,文件上传是一项常见的任务,用于接收用户通过Web表单提交的文件。这里提供的资源是一个自定义的PHP文件上传类,该类允许开发者更灵活地控制上传过程中的各种参数,比如文件数量、大小、存储目录以及...

    php文件上传系统

    本项目名为“php文件上传系统”,显然是一个利用PHP实现的文件上传功能模块,结合MySQL数据库进行数据管理。 在PHP中,文件上传主要依赖于HTTP协议的multipart/form-data编码类型。用户在HTML表单中使用`...

    php文件上传模块,实现文件的上传

    在PHP中,文件上传是网站常见的一种功能,用于让用户上传图片、文档等文件到服务器。本文将详细讲解如何使用PHP实现文件上传模块,以及在这个过程中需要注意的关键知识点。 首先,我们需要理解HTTP协议中的文件上传...

    php文件上传进度条集合

    以下是一些关于PHP文件上传进度条的知识点: 1. **AJAX异步上传**:传统的文件上传通常会刷新整个页面,而通过AJAX技术,可以实现在后台进行文件上传,前端页面保持不刷新,从而实现进度条展示。在PHP中,通常会...

    PHP文件上传标准代码

    在PHP中,文件上传是网站应用中常见的功能之一,它允许用户通过网页上传文件到服务器。下面我们将详细探讨PHP文件上传的标准代码实现及其工作原理。 首先,PHP文件上传需要使用`&lt;form&gt;`标签来创建一个表单,其中`...

    比较全面的php文件上传类.zip

    这个"比较全面的php文件上传类"是一个专门处理文件上传的工具,它封装了相关操作,提供了更方便、安全的方式来处理文件上传过程。下面将详细讲解这个类库的核心知识点及其在实际开发中的应用。 首先,类库的设计...

    php文件上传源码

    在PHP中进行文件上传是一项常见的任务,特别是在构建网站或Web应用程序时。PHP文件上传源码主要涉及以下几个关键知识点: 1. **表单设计**:在HTML中,我们需要一个`&lt;form&gt;`元素来允许用户选择要上传的文件。关键...

    PHP文件上传与下载学习笔记

    在PHP中,文件上传和下载是常见的Web应用功能,用于处理用户上传的文件或提供文件供用户下载。本文将深入探讨PHP文件上传的配置、PHP如何获取上传文件信息以及配置文件的相关设置。 ### 1. 文件上传配置 PHP的文件...

    php文件上传代码

    在PHP中,文件上传是网站常见的一种功能,用于让用户上传图片、文档或其他类型的文件到服务器。这个主题涵盖了许多重要的知识点,包括PHP语法、表单处理、文件操作、错误处理以及安全考虑。以下是对这些关键点的详细...

    php文件上传类

    在PHP中,文件上传是网站开发中常见的功能之一,它允许用户从本地计算机选择文件并将其传输到服务器。为了实现这一功能,PHP提供了一个内置的`$_FILES`全局数组,用于处理HTTP表单中的文件上传数据。然而,在实际...

    强大的php文件上传类强大的php文件上传类

    在PHP编程中,文件上传是常见的功能之一,用于允许用户从他们的设备向服务器上传文件。一个强大的PHP文件上传类能够简化这一过程,处理各种安全问题,并提供灵活性来满足不同的项目需求。下面我们将深入探讨PHP文件...

    php文件上传类--非常实用

    php文件上传类,很简单的实例,是初学php的很好的参考资料

    PHP文件上传类,PHP文件上传类

    在PHP开发中,文件上传是一项常见的任务,尤其在构建网页应用程序时,如用户头像上传、文件分享等场景。PHP提供了内置的文件上传处理机制,但为了方便开发者使用,通常会封装成一个类,简化上传过程。这个"PHP文件...

    php文件上传类(整理)

    本文将深入探讨如何创建一个简单的PHP文件上传类,并了解文件上传过程中的一些关键点。 首先,文件上传表单是用户选择并提交文件的关键组件。在提供的代码中,可以看到一个基本的HTML表单,它使用`POST`方法提交...

    php文件上传代码以及封装的上传类

    php文件上传代码以及封装的上传类,&lt;?php //接收 $username=$_POST['username']; $fileintro=$_POST['fileintro']; //echo $username.$fileintro; //获取文件信息 /* echo "&lt;pre&gt;"; print_r($_FILES); ...

Global site tag (gtag.js) - Google Analytics