搜索
首页php教程php手册PHP图片上传实例分析[包含预览]

图片上传与文件上传在php中都是一样直接使用move_uploaded_file($_FILES["filename"]["tmp_name"]就可以实现了,下面我来给大家分享一个站长分享文件上传例子。

前期需要了解的知识点

move_uploaded_file()文件上传函数

if(move_uploaded_file($_FILES["filename"]["tmp_name"])
{
	echo '文件上传成功';
}

$_FILES php全局变量

$_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)

$_FILES['myFile']['name']   客户端文件的原名称。
$_FILES['myFile']['type']   文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。
$_FILES['myFile']['size']   已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name']   文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。
$_FILES['myFile']['error']   和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
UPLOAD_ERR_OK             值:0; 没有错误发生,文件上传成功。
UPLOAD_ERR_INI_SIZE      值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
UPLOAD_ERR_FORM_SIZE  值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
UPLOAD_ERR_PARTIAL          值:3; 文件只有部分被上传。
UPLOAD_ERR_NO_FILE          值:4; 没有文件被上传。    值:5; 上传文件大小为0.

核心文件:

upimg.htm

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>上传图片</title>
<script language="javascript">
function $(id) {
	return document.getElementById(id);
}
function ok() {
	$("logoimg").src = $("filename").value;
}
</script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0"> 
  <tr> 
    <td height="45" align="center" valign="middle">
  <form action="uploadf.php?submit=1" method="post" enctype="multipart/form-data" name="form1"> 请选择上传的图片 
   <input type="file" name="filename" id="filename" onchange="ok()"> 
   <!-- MAX_FILE_SIZE must precede the file input field -->
   <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
   <input type="submit" name="Submit" value="上传"> 
  </form>
 </td> 
  </tr> 
</table> 
<font color="red">注意:请上传120*45像素的GIF或者jpg格式的logo图片</font><br/>
logo预览:<img  src="/static/imghwm/default1.png"  data-src="images/bg-02.gif"  class="lazy"  id="logoimg" / alt="PHP图片上传实例分析[包含预览] " >
</body>
</html>

调用示例文件:

testUpload.htm

<?php
if (!empty($_GET[submit])) {
    $path = "uploadfiles/pic/"; //上传路径
    //echo $_FILES["filename"]["type"];
    if (!file_exists($path)) {
        //检查是否有该文件夹,如果没有就创建,并给予最高权限
        mkdir("$path", 0700);
    } //END IF
    //允许上传的文件格式
    $tp = array(
        "image/gif",
        "image/pjpeg",
        "image/png"
    );
    //检查上传文件是否在允许上传的类型
    if (!in_array($_FILES["filename"]["type"], $tp)) {
        echo "格式不对";
        exit;
    } //END IF
    if ($_FILES["filename"]["name"]) {
        $file1 = $_FILES["filename"]["name"];
        $file2 = $path . time() . $file1;
        $flag = 1;
    } //END IF
    if ($flag) $result = move_uploaded_file($_FILES["filename"]["tmp_name"], $file2);
    //特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件
    if ($result) {
        //echo "上传成功!".$file2;
        echo "<script language=&#39;javascript&#39;>";
        echo "alert(\"上传成功!\");";
        //echo " location=&#39;add_aaa.php?pname=$file2&#39;";
        echo "</script>";
        echo ("<input type=\"button\" name=\"Submit\" value=\"确定\" onClick=\"window.opener.setFile(&#39;" . $file2 . "&#39;);window.close();\">");
        echo "图片名称:" . $file2;
    } //END IF
    
} else {
    echo "file is null!";
}
?>
调用示例文件:
testUpload.htm
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>上传图片</title>
<script>
function setFile(f1){
   document.frm.logoImg.value=f1;
}
</script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0"> 
  <tr> 
    <td height="45" align="center" valign="middle">
  <form action="#" method="post"  name="frm"> 请选择上传的图片 
        <input name="regAd.logoImg" id="logoImg"   type="text" size="30"/>
    <label style="cursor:hand" onClick="window.open(&#39;upimg.htm&#39;,&#39;上传图片&#39;,&#39;height=200,width=400,top=200,left=200&#39;)">上传图片</label><br/>
  </form>
 </td> 
  </tr> 
</table>
</body>
</html>

此程序不足之处分析

上传预览功能

function $(id) {
	return document.getElementById(id);
}
function ok() {
	$("logoimg").src = $("filename").value;
}

这段代码其实就是一个鸡肋了,在有一些浏览器下是不兼容了,但不会影响到图片上传功能。

程序安全

对于在上传处我们并未进行数据大小限制与程序上传文件类型进行限制,这样可以利用它来上传一些像php文件,这样你的网站就不安全了哦。

本文链接:

收藏随意^^请保留教程地址.

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!