您的位置:首页 > 编程语言 > PHP开发

PHP上传文件的实现

2016-08-21 16:18 281 查看
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);
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息