PHP上传图片程序代码工作笔记
$_FILES与move_uploaded_file就可以在php代码中实现文件或图片上传了,这个比起很多编程语言来讲php上传功能是最简单最好用的了,下面来看个上传图片工作代码。
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP上传文件</title>
<style>
* {margin:0; padding:0; list-style:none;}
.content {width:400px; height:200px; margin:0 auto; margin-top:60px;
background:#ffd3b6; border:dashed 1px #f90}
.content h1 { width:400px; height: 30px; line-height:30px; text-align:
center; font-family:"微软雅黑"; font-size:14px; color:#000}
.content .error {width:300px; height:30px; line-height:30px;
text-align:center; margin:0 auto; color:#f00}
.content .con {width:340px; height:auto; margin:0 auto; font-size:12px;}
.content #file { width:280px; height:20px; border:solid 1px #ccc;
background:#fff; margin:10px 0px 6px 0; font-size:12px;}
.content #send { width:60px; height:22px; border:solid 1px #ccc;
background:#fff; font-size:12px; margin-top:10px;}
</style>
</head>
<body>
<div>
<h1>文件上传</h1>
<div>
<div>
<?php
if ($_GET['up'] == up) {
if ($_SESSION['file'] == $_GET['irand']) {
$_size = 20000; //设置限制文件大小
$_dir = 'phone/'; //文件保存目录
function size($_size) {
//判断文件大小是否大于1024bit 如果大于,则将大小取值为KB
if ($_size > 1024 * 1024) {
return round($_size / 1024 / 1024, 2) . ' MB';
} else if ($_size > 1024) {
$_size = $_size / 1024;
return ceil($_size) . 'KB';
} else {
return $_size . ' bit';
}
}
//设置上传图片的类型,设置图片上传大小
$_upfiles = array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png',
'image/gif'
);
if (is_array($_upfiles)) {
if (!in_array($_FILES['userfile']['type'], $_upfiles)) {
exit('请上传格式为:jpg,png,gif的文件<br /><a href="upload.php">返回</a>');
}
}
if ($_FILES['userfile']['size'] > $_size) {
exit('上传文件不能超过:' . size($_size));
}
if ($_FILES['userfile']['error'] > 0) {
switch ($_FILES['userfile']['error']) {
case 1:
echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
break;
case 2:
echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
break;
case 3:
echo '文件只有部分被上传';
break;
case 4:
echo '没有文件被上传';
break;
case 6:
echo '找不到临时文件夹';
break;
case 7:
echo '文件写入失败';
break;
}
exit;
}
//获取文件扩展名
if (!is_dir($_dir)) {
mkdir($_dir, 0700);
}
$_rand = mt_rand(0, 100000);
$_n = explode('.', $_FILES['userfile']['name']); //将文件名分割
$_file_len = count($_n); //返回数组长度
$_name = $_dir . time() . '_' . $_rand . '.' . $_n[$_file_len - 1];
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
if (!@move_uploaded_file($_FILES['userfile']['tmp_name'], $_name)) {
exit('文件移动失败');
} else {
echo '文件上传成功<br />';
echo '文件路径:' . $_name . '<br />';
echo '文件大小:' . size(filesize($_name));
echo '<br /><a href="upload.php">返回继续上传</a>';
}
} else {
exit('上传的临时文件不存在,无法将文件移动到指定文件夹');
}
//销毁session变量,有几种方法
//第一种,销毁所有session变量:session_destroy();
//第二种:销毁单个如:$_SESSION['file']=''
session_destroy();
exit;
} else {
exit('您已经提交过了,不能重复提交<br /><a href="upload.php">返回</a>');
}
}
?>
</div>
<?php
$_irand = mt_rand(0, 1000000);
$_SESSION['file'] = $_irand; ?>
<form action="?up=up&irand=<?php
echo $_irand; ?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="userfile" id="file"/><br />
<input type="submit" name="send" value=" 点击上传 " id="send"/>
</form>
</div>
</div>
</body>
</html>本文地址:http://www.phprm.com/code/62543.html
转载随意,但请附上文章地址:-)