PHP上传文件的实现

来源:互联网 发布:孟庭苇离婚知乎 编辑:程序博客网 时间:2024/06/01 10:41

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) 简单实现的代码如下:

<?phpdefine('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) 比较完整的代码如下:

<?phpdefine('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);}}?>




0 0