我正在使用Valums文件上传器通过带有进度栏的网页进行文件上传。几乎所有内容都可以正常运行,但是我无法更改默认的tmp目录,该目录 在 上传 期间 存储文件。
文件应存储在/upload
目录中,而不要存储在默认系统/tmp
目录中,因为/tmp
它安装在大小限制为4
MB的RAM磁盘中,并且用户将上传大约10 MB的文件。
我搜索了很多网页,但是没有一种解决方案有效。我在中设置了临时目录php.ini
:
upload_tmp_dir =/upload
我已经为/upload
目录设置了权限,并且apache是文件的所有者,因此该目录绝对可以被PHP写入。
我已将文件上传器中的目标路径设置为/upload
,因为我希望文件在上传后也存储在此目录中。最终结果是小文件成功上载,但是大于4 MB的文件无法上载-
我想到的此行为的唯一原因是文件/tmp
在上载期间存储在其中。可以肯定的是,我已经使用进行了检查,sys_get_temp_dir()
结果是/tmp
-so
PHP忽略了我的php.ini指令,或者还有其他方法可以设置在上传过程中文件的存储位置。
哦,还有最后一个信息:open_basedir
尚未设置,因此PHP对磁盘的访问仅受文件权限的限制。
我很久以前就解决了这里描述的问题,但我真的不记得上载不起作用的主要原因是什么。有很多事情需要修复,以便上传可以正常工作。我创建了清单,可以帮助其他有类似问题的人,并且我将对其进行编辑以使其尽可能地有用。就像我之前在聊天中说的那样,我当时在嵌入式系统上工作,因此在非嵌入式系统上可能会跳过一些要点。
检upload_tmp_dir
入php.ini。这是PHP在上传时存储临时文件的目录。
检open_basedir
入php.ini。如果定义,它将PHP读/写权限限制为指定的路径及其子目录。确保upload_tmp_dir
该路径在此路径内。
检post_max_size
入php.ini。如果您要上传20 MB的文件,请尝试更大的操作,例如post_max_size = 21M
。这定义了上载期间可能使用的POST消息的最大大小。
检upload_max_filesize
入php.ini。这指定了可以上传的最大文件。
检memory_limit
入php.ini。那是脚本可能消耗的最大内存量。很明显,它不能小于上传大小(说实话,我不太确定,PHP在复制临时文件时可能正在缓冲)。
确保您正在检查正确的php.ini文件,该文件是Web服务器上的PHP使用的文件。最好的解决办法是执行这里描述的指令脚本http://php.net/manual/en/function.php-ini-loaded-file.php(php_ini_loaded_file
功能)
检查用户php的运行方式(请参见此处的操作方法:如何检查用户php的运行方式?)。我曾在不同的发行版和服务器上工作。有时是这样apache
,但有时可能是root
。无论如何,请检查该用户是否具有在临时目录和要上载到的目录中进行读写的权限。如果要上载到子目录,请检查路径中的所有目录(例如,/dir1/dir2/
-check dir1
和和都选中dir2
。
在嵌入式平台上,有时需要限制对根文件系统的写入,因为它存储在闪存卡中,这有助于延长该卡的寿命。如果使用脚本启用/禁用文件写入,请确保在上载之前启用写入。
在某些平台上,基于会话的PHP> 5.4上传监视存在严重问题(如http://phpmaster.com/tracking-upload-progress-with-php-and-javascript/所述)。首先尝试一些简单的操作(例如:http : //www.dzone.com/snippets/very-simple-php-file-upload)。如果可行,您可以尝试更复杂的机制。
如果您在php.ini中进行了任何更改,请记住重新启动服务器,以便重新加载配置。
我有一个php版本为7.0的Linux apache2 Web服务器。22.看起来设置根本不起作用:( 这个ini文件位于以下位置:根据。当我查看文件夹时,我看到三个文件(设置告诉我正在使用的文件),和。 所以我查找了,它是,我将它改为,然后。我对所有的人都这样做了。ini文件保存了它们,重新启动apache2并刷新了phpinfo()页面,但什么都没有发生。我试图在所有窗口中更改其他设置。ini
问题内容: 我一开始就对PhP File Upload进度监视器有问题。 首先,以下是相关的PhP.ini设置(指令,本地值和主值): 这是表格(简体): 我在同一PhP文件(当然,是JS脚本)中有JQUERY Ajax代码,如下所示: upload_status.php只是回显$ _SESSION数组。我还在form- php中设置了一个测试会话变量,以确保AJAX(通过upload_statu
不是我的安全泪珠是这样的: 我现在导入证书: 然后我重新启动KeyCloak: 编辑: 这是我记录的错误: ])-故障说明:{“WFLYCTL0080:失败的服务“=>{”org.wildfly.core.management.security.realm.undertowrealm.key-manager“=>”WFlyDM0018:无法启动服务,原因是:UnrecoverableKeyExce
问题内容: 这里的另一个新手..我正在尝试修复以下代码,以防止sql注入,并学习编写php和sql的新方法。 您的建议将不胜感激。 我修改了这个 为此,我没有得到相同的结果。 问题答案: 您不能将mysql与mysqli或PDO混合使用。您需要查看错误日志,因为这不可能实现-您应该看到大量致命错误。
问题内容: Java控制器类: html文件: 角js: 这是我在服务器日志中无法理解的错误: 问题答案: 尝试以下方法。对我来说很好。 HTML你应该有 注意输入的名称。 然后在JS控制器方法中 现在在您的Java Controller类中 希望这对您有用。并且也要进行异常处理。
问题内容: Java控制器类: html文件: 角js: 这是我在服务器日志中无法理解的错误: 问题答案: 尝试以下方法。对我来说很好。 HTML你应该有 注意输入的名称。 然后在JS控制器方法中 现在在您的Java Controller类中 希望这对您有用。并且也要进行异常处理。