file is not a zip file_PHP中move_uploaded_file()移动文件失败

前言注意:is_uploaded_file($_FILES['file']['tmp_name'])函数要在move_uploaded_file()函数之前使用,要先判断是不是正确合法的文件来源,然后再进行上传。//注意tmp_name

1.错误提示:上传图标,运行move_uploaded_file失败:failed to open stream: No such file or directory Unable to move (打开流失败,没有这样的文件或目录 无法移动)

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

move_uploaded_file — 将上传的文件移动到新位置
 
bool move_uploaded_file ( string $filename , string $destination )
 
成功时返回 TRUE。
 
如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。
 
如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回FALSE。此外还会发出一条警告。

第二个,出于某些原因无法移动,某些原因是什么鬼?

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

a、不是使用POST方法上传的文件
b、php.ini 配置出错
c、默认暂时存储的文件夹或目标文件夹 权限不足(常见原因)

4.a原因:is_uploaded_file() 在官网中,对该函数的描述中写道,“本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)”;检查代码,form提交是用的post,而且输出$_FILES["logo"],结果显示正常,显然不是这种原因导致的。is_uploaded_file()判断是否是一个上传的文件,执行了一下,返回的是true。

5.b原因:php.ini的配置中需要注意的是:

需确保文件上传是开启的
 
file_uploads = On
 
上传的文件暂时存储的目录,为了不受其他因素影响,我重新新建了一个文件夹
 
upload_tmp_dir = "C:temp"
 
如果文件过大的话,需要对以下几项进行更改
 
upload_max_filesize = 2M
 
max_file_uploads = 20
 
在上传文件的时候,选择的文件为20kb以下的图片,因此排除这种原因。

6.c原因:最后,设置权限

chmod -R 777 (xampp本地项目的目标文件路径 用command alt c得到)

54e2c319051e88cee4526a09ba0edd39.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值