PHP 文件上传之常见问题($_FILES为空,move_uploaded_file()函数报错)

$_FILES数组为空

1.检查form表单

1.1 是否添加enctype="multipart/form-data"属性,

1.2 是否使用post发送方式

  1. 检查PHP配置文件php.ini

    如果不知道php.ini文件在什么位置,可以在当前PHP文件中输入echo phpinfo(); 然后在浏览器中查看PHP版本信息,如下图所示即为php.ini存储位置,然后在命令窗口打开( vi ).

    2.1查看file_uploads属性是否为on

    在命令模式下输入?file_uploads即可快速找到该属性;

    2.2 查看upload_max_filesize设置,如果比php中设置的size尺寸小也会导致$_FILES为空,默认为2M,可以改为自己想要;

    2.3 修改max_execution_time 属性值,一般上传默认为30s,如果文件大于5M时这个时间就不够用了,可以将其设置为0,也就是不受时间限制

    2.4 如果是多个文件上传,需要修改post_max_size 属性,默认为8M,它是整个form的大小,如果upload_max_filesize超过post_max_size的大小也会影响文件上传

move_uploaded_file()如果出现了"failed to open stream"的警告,如下图所示

这是最终存储上传文件的文件夹没有权限的问题,因为上传文件首先是作为临时文件存储,然后使用move_uploaded_file()将文件移动到保存的位置,而保存的文件夹没有写入的权限,可以在PHP文件中输入 echo exec(‘who am i‘);查看当前使用者

解决的办法是将上传文件要保存的文件夹修改权限,chmod 757 upload就可以了。。

原文地址:https://www.cnblogs.com/MrBear/p/9964806.html

时间: 2024-10-11 14:00:50

PHP 文件上传之常见问题($_FILES为空,move_uploaded_file()函数报错)的相关文章

AJaxFileUpload 文件上传<pre>,json字符串为空解决方法

View页面 的JS代码 其中返回值要进行序列号 dataType要大写 <script type="text/javascript"> function ajaxFileUpload(){ $.ajaxFileUpload({ url: '/FileUpload/Index', //用于文件上传的服务器端请求地址 secureuri: false, //是否需要安全协议,一般设置为false fileElementId: 'fileName', //文件上传域的ID da

文件上传--upload.parseRequest(request)返回空

文件上传功能之前已经完成,但因为只是一个小工具,在和同事合并代码后发现功能不能使用了. 确认原因是 List<FileItem> fileList = upload.parseRequest(request); 返回的fileList为空值. 查询网上方法,是在web.xml中增加请求类型拦截,但我的配置中已经有了,排除这个因素. <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-na

又见文件上传问题--fileUpLoad

这是第三次写关于文件上传的随笔了,为了这文件上传我也是醉了.废话不多说,下面开说问题: 项目中有一个上传文件的功能,好不容易把上传功能写完了,在本地运行没有问题,以为文件没有问题了,然后就开始把项目部署到服务器上运行,但是部署到服务器之后,其他的功能都没有问题,但是提交带有文件上传的表单的时候就一直报错,报什么错呢? No result defined for action 最恶心的错误之一有木有?只有这样的一句错误,别的什么都没有,怎么下手解决都不知道,然后开始上网去搜解决办法,以前也遇到过类

php部分---文件上传:错误处理、 客户端和服务器端的限制

1.客户端页面 <!---客户端的配置 1.表单页面 2.表单发送方式为post 3.表单form中添加enctype="multipart/form-data" -------> <body> <form action="doaction.php" method="post" enctype="multipart/form-data"> <input type="file&

PHP如何实现文件上传

PHP如何实现文件上传 1.表单部分 允许用户上传文件,在HTML表单的声明中要加上一个上传的属性: enctype = 'multipart/form-data' 表单的method必须是POST 表单选项MAX_FILE_SIZE隐藏域用于限制上传文件大小,它必须放在文件表单元素前面,单位为字节. 如: 复制代码代码如下: <form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'

PHP文件上传全攻略(转)

转自:http://www.neatstudio.com/show-1343-1.shtml 这是一篇比较老的文章,其实从情感上来说,我更愿意推荐手册上的介绍,但事实上,在一些PHP群中,有些朋友在问的时候,他们总是想不到翻手册的. 嗯,英文的手册确实让人不太舒服,但,不可能在手册一出来就帮你翻译好的吧?事事都去期待别人,还不如把英文好好看看,再者,手册上的英文真的很简单的. 我不知道你们的手册是怎么样的,版本多少,但是我在我的手册里是有这么一个章节: Chapter 38. Handling

PHP基础------文件上传类

<?php //文件上传类 $upImage = $_FILES["img"]; //Array //( // [name] => gou.jpg // [type] => image/jpeg // [tmp_name] => D:\wamp\tmp\php311F.tmp // [error] => 0 // [size] => 9488 //) class upLoad{ private $_arr; //构造函数,把图像信息赋值给$_arr字

单个文件上传

一.新建一个1107.php文件,在文件中写出如下代码: <DOCTYPE html> <html> <head> <title>文件上传</title> </head> <body> <form method="post" action="t2.php" enctype="multipart/form-data"> <input type=&q

PHP 文件上传全攻略

PHP文件上传功能一般都是大家使用事先封装好的函数,要用的时候直接使用已封装的函数就完了,但有时候不能使用封装函数,还真不大能记住PHP的上传相关的东西,在此做个总结,以备后用. 1.表单部分 允许用户上传文件,在HTML表单的声明中要加上一个上传的属性: enctype = 'multipart/form-data' 表单的method必须是POST 表单选项MAX_FILE_SIZE隐藏域用于限制上传文件大小,它必须放在文件表单元素前面,单位为字节. 如: 复制代码 代码如下: <form