加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP上传文件(PHP文件上传处理案例分析)

发布时间:2022-12-15 15:40:02 所属栏目:PHP教程 来源:未知
导读: 这篇关于PHP上传文件的文章PHP文件上传,主要介绍PHP文件上传处理案例分析,觉得挺不错的,感兴趣的php开发者可以参考下,希望对大家在学习php的成长路上有所帮助!
最近遇到一个事,把自己

这篇关于PHP上传文件的文章PHP文件上传,主要介绍PHP文件上传处理案例分析,觉得挺不错的,感兴趣的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?"非法上传文件";
}
}

上面的这种方式基本就满足了文件上传。但我需要的不是这样的。

PHP上传文件(PHP文件上传处理案例分析)

上传功能

需求:先点击上传文档,然后选择上传文件,JS上传后会返回一个值,显示当前时间戳问名称的文件在文档名称这个框框中。

然后点击提交后,提交表单。

服务器处理提交的表单,对上传的文件进行重命名。

问题也随之而来了,服务器是IIS的,然后它是用的映射的方式实现的虚拟跟目录。

这样的话$_SERVER[‘DOCUMENT_ROOT']就不在PHP站点的根目录

虽然完成了上传的功能,但无法下载这个文件。从服务器的安全考虑,还是打算把文件放在PHP站点内。

然后我就陷进了一个思维局限中。

再仔细想一想:

为何我不用实现PHP的上传机制的方式在重复一次。

PHP不是将文件先放到临时目录里面吗?然后我为嘛假设JS上传成功后的目录也是一个临时目录,

然后在再一次提交表单的时候进行文件复制。到指定的目录这样就完成了需要的功能。

PHP有一个文件复制函数Copy(); 然后在配合rename()函数。这样就可以完成上传后文件的第二次移动和重命名了。

注意:在window平台下如果复制一个零字节的文件,copy() 将返回 FALSE ,但文件也会被正确复制。

然后PHP在文件处理上,积极的参考了Liunx的文件处理机制。PHP的文件操作效率,这跟I/O对写和操作系统有关。

PHP上传文件总结

其实解决问题的方式很多,而且不要给自己画圈从而限定自己的思维。

以上就是关于PHP上传文件全部内容,希望这篇PHP文件上传处理案例分析文章能够帮你解决如相关的PHP问题,更多请关注PHP栏目的其它相关文章!

编程学习分享?PHP上传文件(PHP文件上传处理案例分析)

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!