PHP上传文件的实现

PHP上传文件的实现

PHP文件上传的实现分为前端html和后端PHP两部分。

1、 前端html的代码如下:[文件名:upload_file.html ] 

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<title>Upload File Page</title>
</head>
<body>
	<form name="upload_file" action="upload_file.php" method="post" enctype="multipart/form-data">
		<input name="up_file" type="file">
		<input name="submit" type="submit" value="Upload">
	</form>
</body>
</html>

2、后端PHP的代码如下:[文件名:upload_file.php ]

(1) 简单实现的代码如下:

<?php
	define('FILE_MAX_SIZE', 2147483648);  # max_filesize = 2GB 
	
	if ($_FILES['up_file']['name']) {
		# set execution time 
		set_time_limit(300);
		# set memory limit 
		ini_set('memory_limit', '512M');
		$file_info = $_FILES['up_file'];
		if ($file_info['size'] <= FILE_MAX_SIZE && $file_info['size'] > 0) {
			$uf_rst = move_uploaded_file($file_info['tmp_name'], $file_info['name']);
			($uf_rst == true)? die('Success') : die('Failed');
		} else {
			die('Upload file size is too large');
		}
	}
?>

(2) 比较完整的代码如下:

<?php
	define('FILE_MAX_SIZE', 2147483648);  # max_filesize = 2GB 
	define('DEBUG_LOG_FILE', '/var/log/upload_file.log');
	
	function debug_log($file, $line, $msg) {
		$out_time = date('Y-m-d H:i:s', time());
		$out_format = "[ $out_time ] $file : L{$line} : $msg \n";
		$log_fp = fopen(DEBUG_LOG_FILE, "a+");
		if (flock($log_fp, LOCK_EX)) {
			fwrite($log_fp, $out_format);
			flock($log_fp, LOCK_UN);
		}
		fclose($log_fp);
	}
	
	if ($_FILES['up_file']['name']) {
		# set execution time 
		set_time_limit(300);
		# set memory limit 
		ini_set('memory_limit', '512M');
		ini_set('upload_max_filesize', '2100M');
		ini_set('post_max_size', '2100M');
		$file_info = $_FILES['up_file'];
		if ($file_info['size'] <= FILE_MAX_SIZE && $file_info['size'] > 0) {
			$uf_rst = move_uploaded_file($file_info['tmp_name'], $file_info['name']);
			if ($uf_rst == true) {
				debug_log(__FILE__, __LINE__, 'Uplod file ' . $file_info['name'] . ' success');
				die('Success');
			} else {
				debug_log(__FILE__, __LINE__, 'Uplod file ' . $file_info['name'] . ' failed');
				die('Failed');
			}
		} else {
			debug_log(__FILE__, __LINE__, '$file_info[size] = ' . $file_info['size']);
			$msg = 'Upload file size is too large';
			debug_log(__FILE__, __LINE__, $msg);
			die($msg);
		}
	}
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值