PHP文件上传 move_uploaded_file

 更新时间:2016年11月25日 15:15  点击:1705

PHP文件上传 move_uploaded_file

建立一个上传文件表格
为了让用户上传文件的形式可以是非常有益的。

看看下面的HTML表单的文件上传:

<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

请注意以下的HTML表单上面:

该是enctype属性<form>标记指定的内容类型时使用的形式提交。 “多/形式的数据”时使用的一种形式,需要二进制数据,如文件内容,将上传
该类型= “文件”属性指定<input>标记的投入应该是处理文件。例如,当观看在浏览器中,将有浏览按钮,旁边的输入栏位
注:允许用户上传文件是一个很大的安全风险。只允许受信任的用户进行文件上传。





创建上传脚本
该“ upload_file.php ”文件中包含的代码上传文件:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

利用全球的PHP变量$ _FILES阵列,您可以上传文件从用户端电脑到远程服务器。

第一个参数是表单的输入名称和第二指数可以是“姓名” , “类型” , “大小” , “ tmp_name ”或“错误” 。像这样:

变量$ _FILES [ “file” ] [ “name” ] -的名字上传的文件
变量$ _FILES [ “file” ] [ “type” ] -类型的上传文件
变量$ _FILES [ “file” ] [ “size” ] -大小以字节为单位的上传文件
变量$ _FILES [ “file” ] [ “ tmp_name ” ] -名称的临时副本的文件存储在服务器上
变量$ _FILES [ “file” ] [ “error” ] -错误代码造成的文件上传
这是一个非常简单的方式上传文件。出于安全原因,你应该补充什么限制,用户可以上传。


限制上传
在此脚本,我们添加一些限制文件上传。用户只能上传。 gif或。 JPEG文件和文件大小必须在20 kB的:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Error: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>
 

注意:对于IE浏览器承认jpg文件类型必须pjpeg ,用于Firefox必须的jpeg 。




节能上传文件
上述范例建立一个临时副本上传的文件在PHP临时文件夹在服务器上。

临时复制的文件消失了的剧本时结束。存储上传的文件,我们需要将它复制到不同的位置:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
以上脚本检查,如果文件已经存在,如果它不,它的文件拷贝到指定文件夹。

注意:这个例子保存文件到一个新的文件夹中所谓的“上传”

PHP Cookies

Cookie是经常被用来识别用户。

cookie是什么?
Cookie是经常被用来识别用户。 Cookie是一个小型的档案服务器嵌入在用户的计算机上。每次在同一台计算机请求一个网页的浏览器,它将把饼干太多。在PHP中,你都可以创造和检索的cookie值。

如何创建一个Cookie ?
该setcookie ( )函数功能是用于设置一个cookie 。

注: setcookie ( )函数函数必须出庭<html>标记。

语法

setcookie(name, value, expire, path, domain);

范例1
在下面的例子中,我们将创建一个Cookie命名为“用户” ,并指派的价值“阿莱克斯波特”给它。我们还规定,饼干应到期后一小时:

 

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
注:价值Cookie是URLencoded时自动发送的cookie ,并自动解码收到时(以防止URLencoding ,使用setrawcookie ( )代替) 。

Example 2
您也可以设定到期时间的cookie以另一种方式。它可容易使用秒。
 
<?php
$expire=time()+60*60*24*30;
setcookie("user", "Alex Porter", $expire);
?>

在上述范例中的到期时间设定为一个月( 60秒* 60分钟* 24小时* 30天) 。




如何撷取一个cookie价值吗?
PHP的$ _COOKIE变量是用来撷取一个cookie值。

在下面的例子中,我们撷取的价值Cookie的名为“用户” ,并显示在网页上:

<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
 

在下面的例子中我们使用isset ( )函数找出一个Cookie ,如果已经成立:

 

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Welcome " . $_COOKIE["user"] . "!<br />";
else
  echo "Welcome guest!<br />";
?>
</body>
</html>
 

如何删除的Cookie ?
当删除了cookie你应该保证到期日期是在过去。

删除例如:

 

<?php 
// set the expiration date to one hour ago
setcookie("user", "", time()-3600); ?>
 

如果浏览器不支持cookies ?
如果您的申请涉及的浏览器不支持cookies ,您将不得不使用其他方法来传递信息从一个网页到另一个在您的申请。一种方法是通过数据形式(形式和用户输入的是前面描述本教程) 。

下面的表格通过用户输入的“ welcome.php ”当用户点击“提交”按钮:

 

<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
 

取回的价值在“ welcome.php ”文件像这样:

<html>
<body>Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old.</body>
</html>

fopen()是用来打开文件,在PHP 。

第一个参数的这一功能包含文件的名称将开放第二个参数指定的文件模式应打开:

 <html>
<body><?php
$file=fopen("welcome.txt","r");
?></body>
</html>

The file may be opened in one of the following modes:

Modes Description
r Read only. Starts at the beginning of the file
r+ Read/Write. Starts at the beginning of the file
w Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist
w+ Read/Write. Opens and clears the contents of file; or creates a new file if it doesn't exist
a Append. Opens and writes to the end of the file or creates a new file if it doesn't exist
a+ Read/Append. Preserves file content by writing to the end of the file
x Write only. Creates a new file. Returns FALSE and an error if file already exists
x+ Read/Write. Creates a new file. Returns FALSE and an error if file already exists

注意:如果fopen()函数是无法打开指定的文件,它返回0 (假) 。

例如
下面的例子生成一个讯息,如果fopen()函数是无法打开指定的文件:

<html>
<body>
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>
</body>
</html>

fclose 关闭文件
该fclose ( )函数是用来关闭一个开放的档案

<?php
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
?>
检查文件结束
该feof ( )函数检查如果“文件结束” (的EOF )已经达成。

该feof ( )函数是有益的循环,通过数据的未知的长度。

注意:您不能读取档案开放瓦特,一个,和x模式
if (feof($file)) echo "End of file";
 

读文件一行行
该fgets ( )函数是用来读取一个单一的从一个文件。

注意:在调用此函数的文件指针已经移到下一行。

例如
下面的例子中读取文件一行行,直至到达文件:

<?php
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
  {
  echo fgets($file). "<br />";
  }
fclose($file);
?>

读文件的性格特征
该fgetc ( )函数是用来读取一个字符从一个档案。

注意:在调用此函数的文件指针移动到下一个字符。

例如
下面的例子中读取一个文件性质的特点,到年底达成的文件是:

 

<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
while (!feof($file)) 
  { 
  echo fgetc($file); 
  }
fclose($file);
?>

PHP Include 文件

服务器端包括
您可以插入的内容的文件到PHP文件之前,服务器执行它,与包括( )或要求( )函数。这两项职能是相同的各种方式,但他们如何处理错误。在包括( )函数生成一个警告(但该脚本将继续执行) ,而需要( )函数生成一个致命的错误(和脚本执行后,将停止错误) 。

这两项职能是用于创建功能,页眉,页脚,或内容,可重复使用的多个页面。

这可以节省开发了相当多的时间。这意味着,您可以创建一个标准的标题或菜单文件,您想您的所有网页,包括。当头需要更新,您只能更新一个包括文件,或当你添加了新的一页到您的网站,您可以改变菜单文件(而不是更新的所有链接的网页) 。

在包括( )函数
在包括( )函数中的所有文本指定的文件并复制到文件,包括使用功能。

范例1
假设您有一个标准的头文件,所谓的“ header.php ” 。包括头文件在一个页面上,使用包括( )函数,就像这样:

<html>
<body><?php include("header.php"); ?><h1>Welcome to my home page</h1><p>Some text</p></body>
</html>

示例2
现在,让我们假设我们有一个标准的菜单文件,应当使用的所有网页(包括文件通常有。 “ PHP的”扩展) 。看看“ menu.php ”文件如下:

<html>
<body><a href="http://www.w3schools.com/default.php">Home</a> |
<a href="http://www.w3schools.com/about.php">About Us</a> |
<a href="http://www.w3schools.com/contact.php">Contact Us</a>

这三个文件, “ default.php ” , “ about.php ”和“ contact.php ”大家都应该包括“ menu.php ”文件。以下是代码“ default.php ” :

<?php include("menu.php"); ?>
<h1>Welcome to my home page</h1>
<p>Some text</p>
</body>
</html>

如果你看看源代码的“ default.php ”在浏览器中,它将看起来就像这样:

<html>
<body>
<a href="default.php">Home</a> |
<a href="about.php">About Us</a> | 
<a href="contact.php">Contact Us</a>
<h1>Welcome to my home page</h1>
<p>Some text</p>
</body>
</html>

当然,我们也必须做同样的事情为“ about.php ”和“ contact.php ” 。通过使用包括文件,

您只需更新中的文字“ menu.php ”文件如果您决定重新命名或更改顺序的联系或添加其他网页的网站。

The require()

The require() 函数生成一个警告(但该脚本将继续执行) ,而需要( )函数生成一个致命的错误(和脚本执行后,将停止错误) 。

如果您加入了文件,包括( )函数和发生错误时,你可能得到一个错误信息类似下面的一个。

PHP代码:

<html>
<body>

<?php
include("wrongFile.php");
echo "Hello World!";
?>

</body>
</html>

 

error

Warning: include(wrongFile.php) [function.include]:
failed to open stream:
No such file or directory in C:homewebsitetest.php on line 5
Warning: include() [function.include]:
Failed opening 'wrongFile.php' for inclusion
(include_path='.;C:php5pear')
in C:homewebsitetest.php on line 5
Hello World!
 

请注意,声明的回音仍是执行!这是因为报警不停止执行脚本。

现在,让我们运行相同的例子与要求( )函数。

PHP代码:

 

 <html>
<body>

<?php
require("wrongFile.php");
echo "Hello World!";
?>

</body>
</html>

Warning: require(wrongFile.php) [function.require]:
failed to open stream:
No such file or directory in C:homewebsitetest.php on line 5
Fatal error: require() [function.require]:
Failed opening required 'wrongFile.php'
(include_path='.;C:php5pear')
in C:homewebsitetest.php on line 5
 
回声说法是不执行的,因为脚本执行停止后致命错误。

这是推荐使用的需要( )函数而不是包括( ) ,因为脚本不应该继续执行,如果文件丢失或命名错误。

PHP的日期 date() 函数

PHP的日期( )函数的格式时间戳一个更可读的日期和时间。

语法

date(format,timestamp)

参数说明
格式要求。指定格式的时间戳
时间任择。指定时间戳记。默认为当前的日期和时间(如时间戳)

 



PHP的日期-格式的日期
第一个参数中的日期( )函数指定如何格式化的日期/时间。它使用字母代表的日期和时间格式。以下是一些字母,可用于:

搭扣-这一天的一个月( 1月3 1日)
米-目前的一个月,作为一个数( 0 1-12)
Y -本年度在四位数
概述了所有的信件,可用于格式参数,可以发现在我们的PHP的日期范围。

其他字符,如“ / ” , “ 。 ”或“ -”也可以插入之间的信件,新增额外的格式:

 

<?php
echo date("Y/m/d");
echo "<br />";
echo date("Y.m.d");
echo "<br />";
echo date("Y-m-d");
?>
输出如下.
 
 2006/07/11
2006.07.11
2006-07-11
 

PHP的日期-添加时间戳
第二个参数中的日期( )函数指定一个时间戳记。此参数是可选的。如果您没有提供一个时间,目前的时间将被使用。

在我们的下一个例子我们将使用mktime ( )函数来创建一个时间戳的明天。

该mktime ( )函数返回的Unix时间戳为某一特定日期。

语法

mktime(hour,minute,second,month,day,year,is_dst)
 

去一天的将来,我们只需添加一个有一天论点mktime ( ) :

<?php
$tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));echo "Tomorrow is ".date("Y/m/d", $tomorrow);
?>

 

 

 

 

输出如.

Tomorrow is 2006/07/12

 

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07