【问题标题】:move_uploaded_file only works in subdirectoriesmove_uploaded_file 仅适用于子目录
【发布时间】:2017-01-09 19:22:18
【问题描述】:

我有一个上传脚本,它应该通过以下方式上传文件:

html
|----folder1
     |----folder2 <- where files should go
|----upload
     |----index.php <- uploadSkript

我想将上传的文件移动到文件夹 2

if (isset ( $_FILES['portfolio'])) {
$uploaddir = '../folder1/folder2/';

switch($_FILES['portfolio']['error'] ) {
    ....
}

if (is_dir($uploaddir) && is_writable($uploaddir)) {
    move_uploaded_file($_FILES['portfolio']['tmp_name'], $uploaddir.$_FILES['portfolio']['name']); ...

这行得通,但自从我迁移到 php7 后,它就不再工作了。
我可以将文件移动到与 index.php 相同的文件夹或子目录中。
但是当我尝试使用 ../folder1/folder2/ 或 /html/folder1/folder2/ 来访问 folder2 (或其他任何不是子目录的地方)时,它不会移动文件。 is_dir 报告错误。
感谢您的帮助/想法

【问题讨论】:

  • 检查目录权限,确保web用户有写权限。
  • 你好,谢谢,已经试过了,folder1和2都有写权限。无论如何应该与 is_dir 无关。?
  • 您在串联$uploaddir.$_FILES['portfolio']['name'] 中缺少/
  • 啊是的@Barmar '/' 在 $uploaddir 中,更新了代码 sn-p
  • 开启完整的错误报告以查看失败的原因。 error_reporting(E_ALL);

标签: php file-upload path php-7


【解决方案1】:

谢谢你们的建议。 我可以通过在我的 php7-options 中停用 open_basedir 来解决我的问题。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    相关资源
    最近更新 更多