PHP文件上传处理案例分析
本文实例讲述了PHP文件上传处理的方法。分享给大家供大家参考,具体如下:
最近遇到一个事,把自己坑了好久,我想说说我开始的想法
PHP的上传机制封装的很完全,基本几行代码就能实现,他的实现流程是这样的
UPLOAD到文件到临时目录中–>使用move_uploadde_file()到指定的目录
这就是PHP上传流程,或者你在中途再进行一些验证。例如判断是不是通过upload方式提交的文档,或者文件的扩展是不是我们允许的
等等一系列验证。我给出简单的代码也算是抛砖引玉了。
$targetFolder = '/uploads'; // 定义根目录 if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; if(is_uploaded_file($tempFile)) { $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; $targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name']; $fileTypes = array('jpg','jpeg','gif','png'); // 允许的后缀扩展 $fileParts = pathinfo($_FILES['Filedata']['name']); if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($tempFile,$targetFile); echo '1'; } else { echo '非法上传文档.'; } }else { echo "非法上传文件"; } }
上面的这种方式基本就满足了文件上传。但我需要的不是这样的。
上传功能
需求:先点击上传文档,然后选择上传文件,JS上传后会返回一个值,显示当前时间戳问名称的文件在文档名称这个框框中。
然后点击提交后,提交表单。
服务器处理提交的表单,对上传的文件进行重命名。
问题也随之而来了,服务器是IIS的,然后它是用的映射的方式实现的虚拟跟目录。
这样的话$_SERVER[‘DOCUMENT_ROOT']就不在PHP站点的根目录
虽然完成了上传的功能,但无法下载这个文件。从服务器的安全考虑,还是打算把文件放在PHP站点内。
然后我就陷进了一个思维局限中。
再仔细想一想:
为何我不用实现PHP的上传机制的方式在重复一次。
PHP不是将文件先放到临时目录里面吗?然后我为嘛假设JS上传成功后的目录也是一个临时目录,
然后在再一次提交表单的时候进行文件复制。到指定的目录这样就完成了需要的功能。
PHP有一个文件复制函数Copy(); 然后在配合rename()函数。这样就可以完成上传后文件的第二次移动和重命名了。
注意:在window平台下如果复制一个零字节的文件,copy() 将返回 FALSE ,但文件也会被正确复制。
然后PHP在文件处理上,积极的参考了Liunx的文件处理机制。PHP的文件操作效率,这跟I/O对写和操作系统有关。
总结:其实解决问题的方式很多,而且不要给自己画圈从而限定自己的思维。
希望本文所述对大家PHP程序设计有所帮助。
更多PHP文件上传处理案例分析相关文章请关注PHP中文网!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP文件上传教程:如何使用HTML表单上传文件在进行网站开发过程中,文件上传功能是非常常见的需求。而PHP作为一种流行的服务器脚本语言,可以很好地实现文件上传功能。本文将详细地介绍如何使用HTML表单完成文件上传。一、HTML表单首先,我们需要使用HTML表单创建一个文件上传的页面。HTML表单中需要设置enctype属性为“multipart/form-

随着互联网技术的不断发展,文件上传功能已成为许多网站必不可少的一部分。在PHP语言中,我们可以通过一些类库和函数来处理文件上传。本文将重点介绍PHP中的文件上传处理方法。一、表单设置在HTML表单中,我们需要设置enctype属性为“multipart/form-data”,以支持文件上传。代码如下:

PHP文件上传安全指南:如何使用$_FILES数组获取上传文件信息摘要:文件上传是Web开发中常见的功能之一。然而,不正确的文件上传实现可能会导致安全漏洞,给应用程序带来潜在的风险。本文将介绍如何使用PHP的$_FILES数组来安全地获取上传文件的信息,并结合一些代码示例来帮助读者更好地理解。设置合适的文件上传限制在PHP中,我们可以使用php.ini文件来

处理PHP文件上传编码错误并生成对应报错提示的技巧在开发Web应用程序中,文件上传是一个非常常见的需求。而在处理PHP文件上传时,我们经常会遇到编码错误的情况。本文将介绍一些处理PHP文件上传编码错误并生成对应报错提示的技巧。在PHP中,文件上传是通过$_FILES全局变量来访问上传的文件的。通过$_FILES可以获取上传文件的名称、大小、临时文件路径等信息

如何通过PHP编写一个简单的文件上传和下载功能随着互联网技术的发展,文件上传和下载功能成为了许多网站必备的功能之一。通过编写一个简单的文件上传和下载功能,可以让用户方便地上传和下载文件,提高用户体验。本文将介绍如何使用PHP编写一个简单的文件上传和下载功能,并提供具体的代码示例。一、文件上传功能的实现创建表单首先,在HTML页面上创建一个表单,用于用户上传文

PHP文件上传方法及常见问题汇总文件上传是Web开发中常见的功能之一,可以用于用户上传头像、文件等。PHP提供方便的文件上传处理方法,本文将详细介绍PHP文件上传方法及常见问题汇总。一、PHP文件上传方法HTML表单实现文件上传需要使用HTML表单,其中需要设置enctype属性为"multipart/form-data",这样浏览器

随着互联网的不断发展,越来越多的网站都需要文件上传和下载功能。作为一种开源的服务器端脚本语言,PHP有着广泛的应用场景和业界认可。而CMS(ContentManagementSystem,内容管理系统)是我们常见的网站类型之一,本文将讨论如何使用PHP开发CMS中的文件上传与下载模块。一、文件上传模块1.上传文件的基本原理文件上传的基本原理是将文件从客户

如何使用PHP实现一个简单的在线文件上传和下载系统,需要具体代码示例在网络时代,文件的传输和共享是非常常见的需求。无论是个人还是企业,都需要方便、快捷地处理文件的上传和下载操作。而PHP作为一种强大的服务器端脚本语言,提供了丰富的函数和工具,可以方便地实现文件上传和下载功能。本文将介绍如何使用PHP实现一个简单的在线文件上传和下载系统,并提供详细的代码示例。
