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

PHP图片上传实例分析[包含预览]

May 25, 2016 pm 04:45 PM
文件上传

图片上传与文件上传在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/imghw/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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

实现Workerman文档中的文件上传与下载 实现Workerman文档中的文件上传与下载 Nov 08, 2023 pm 06:02 PM

实现Workerman文档中的文件上传与下载,需要具体代码示例引言:Workerman是一款高性能的PHP异步网络通讯框架,具备简洁、高效、易用等特点。在实际开发中,文件上传和下载是常见的功能需求,本文将介绍如何使用Workerman框架实现文件的上传和下载,并给出具体的代码示例。一、文件上传:文件上传是指将本地计算机上的文件传输至服务器端的操作。下面是使用

如何利用Laravel实现文件上传和下载功能 如何利用Laravel实现文件上传和下载功能 Nov 02, 2023 pm 04:36 PM

如何利用Laravel实现文件上传和下载功能Laravel是一个流行的PHPWeb框架,提供了丰富的功能和工具,使得开发Web应用程序更加简单和高效。其中一个常用的功能就是文件上传和下载。本文将介绍如何利用Laravel实现文件上传和下载功能,并提供具体的代码示例。文件上传文件上传是指将本地的文件上传到服务器上保存。在Laravel中,我们可以使用文件上传

如何在 Golang 中使用 gRPC 实现文件上传? 如何在 Golang 中使用 gRPC 实现文件上传? Jun 03, 2024 pm 04:54 PM

如何使用gRPC实现文件上传?创建配套服务定义,包括请求和响应消息。在客户端,打开要上传的文件并将其分成块,然后通过gRPC流流式传输发送到服务端。在服务端,接收文件块并将其存储到文件中。服务端在文件上传完成后发送响应,指示上传是否成功。

如何解决Java文件上传异常(FileUploadException) 如何解决Java文件上传异常(FileUploadException) Aug 18, 2023 pm 12:11 PM

如何解决Java文件上传异常(FileUploadException)上传文件在Web开发中经常会遇到的一个问题是FileUploadException(文件上传异常)。它可能会由于各种原因而出现,例如文件大小超过限制、文件格式不匹配或者服务器配置不正确等。本文将介绍一些解决这些问题的方法,并提供相应的代码示例。限制上传文件的大小在大多数场景下,限制文件大小

如何用PHP实现FTP文件上传进度条 如何用PHP实现FTP文件上传进度条 Jul 30, 2023 pm 06:51 PM

如何用PHP实现FTP文件上传进度条一、背景介绍在网站开发中,文件上传是一个常见的功能。而对于大文件的上传,为了提高用户体验,我们常常需要给用户显示一个上传进度条,让用户知道文件上传的进程。本文将介绍如何使用PHP实现FTP文件上传进度条的功能。二、FTP文件上传进度条的实现方法基本思路FTP文件上传的进度条实现,通常是通过计算上传的文件大小和已上传文件大小

Laravel中的文件上传和处理:管理用户上传的文件 Laravel中的文件上传和处理:管理用户上传的文件 Aug 13, 2023 pm 06:45 PM

Laravel中的文件上传和处理:管理用户上传的文件引言:在现代Web应用程序中,文件上传是很常见的功能需求。在Laravel框架中,文件上传和处理变得非常简单和高效。本文将介绍如何在Laravel中管理用户上传的文件,包括文件上传的验证、存储、处理和显示。一、文件上传文件上传是指将文件从客户端上传到服务器端。在Laravel中,文件上传非常容易处理。首先,

PHP文件上传指南:如何使用move_uploaded_file函数处理上传文件 PHP文件上传指南:如何使用move_uploaded_file函数处理上传文件 Jul 30, 2023 pm 02:03 PM

PHP文件上传指南:如何使用move_uploaded_file函数处理上传文件在开发Web应用中,文件上传是一个常见的需求。PHP提供了一个方便的函数move_uploaded_file(),用于处理上传的文件。本文将向您介绍如何使用这个函数来实现文件上传功能。一、准备工作在开始之前,确保您的PHP环境已经配置好了文件上传的参数。您可以通过打开php.in

用Golang函数简化文件上传处理 用Golang函数简化文件上传处理 May 02, 2024 pm 06:45 PM

答案:是,Golang提供的函数可以简化文件上传处理。详情:MultipartFile类型提供对文件元数据和内容的访问。FormFile函数从表单请求中获取特定文件。ParseForm和ParseMultipartForm函数用于解析表单数据和多部分表单数据。使用这些函数简化了文件处理流程,让开发者专注于业务逻辑。

See all articles