VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > PHP >
  • move_uploaded_file()移动文件失败?

上传图标,运行move_uploaded_file失败:

       failed to open stream: No such file or directory 

       Unable to move 

      打开流失败,没有这样的文件或目录

      无法移动

搬一下书本,官网上是这样说的:

move_uploaded_file — 将上传的文件移动到新位置

bool move_uploaded_file ( string $filename , string $destination )

成功时返回 TRUE

如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE

如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回FALSE。此外还会发出一条警告。

看了我好多遍,第二个,出于某些原因无法移动,某些原因是什么鬼

由于执行这个函数返回的数据较少,成功是true,失败是false;但是失败又有很多种情况,在这里我只列几个通过推测加上查资料所得的有可能失败的原因:

1、不是使用POST方法上传的文件

2、php.ini 配置出错

3、默认暂时存储的文件夹或目标文件夹 权限不足

 

一、在官网中,对该函数的描述中写道,“本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的”;

检查代码,form提交是用的post,而且输出$_FILES["logo"],结果显示正常,显然不是这种原因导致的。

is_uploaded_file()判断是否是一个上传的文件,执行了一下,返回的是true。

 

二、php.ini的配置中需要注意的是:

需确保文件上传是开启的

file_uploads = On

上传的文件暂时存储的目录,为了不受其他因素影响,我重新新建了一个文件夹

upload_tmp_dir = "C:\temp"

如果文件过大的话,需要对以下几项进行更改

upload_max_filesize = 2M

max_file_uploads = 20

在上传文件的时候,选择的文件为20kb以下的图片,因此排除这种原因。

 

三、最后,设置权限

       对文件进行操作,需要有读写权限。在网上查阅了很多资料,有很多种解法,也做了多种尝试,最后认定:文件夹的权限添加上Everyone-完全控制(注意是暂时放图片的文件夹和目标文件夹两个都要设置)。具体步骤如下:文件夹--右键属性--安全--

 

 

再运行一遍,upload文件夹有上传的图片,完成~

 

相关教程