【问题标题】:cannot move uploaded files failed to open stream无法移动上传的文件无法打开流
【发布时间】:2014-03-14 17:07:01
【问题描述】:

你好,所以我有一个简单的 php 上传系统,我想将我的文件上传到 ftp 服务器,但是当我尝试它不起作用时,我得到了这两个错误:

警告:move_uploaded_file(/userfiles/grega):无法打开流:第 19 行的 /srv/disk3/1618233/www/netdisk.co.nf/upload.php 中没有这样的文件或目录强>

警告:move_uploaded_file(): Unable to move '/tmp/phpVtApVM' to '/userfiles/grega' in /srv/disk3/1618233/www/netdisk.co.nf/upload.php on line 19

ftp 服务器上有文件夹userfiles/grega,请帮帮我

代码:

<?php

require_once 'core/init.php';
if($_POST[submit]) {
    $name = $_FILES['upload']['name'];
    $temp = $_FILES['upload']['tmp_name'];
    $type = $_FILES['upload']['type'];
    $size = $_FILES['upload']['size'];

    if($size <= 5000000){

        $user = new User();

        if(!$user->isLoggedIn()) {
            Redirect::to('index.php');
        }
        $uploads_dir = '/userfiles';
        $username = ($user->data()->username);
        move_uploaded_file($temp,"$uploads_dir/$username");
        Session::flash('home', '<h3>Datoteka je bila naložena!</h3>');
        Redirect::to('mojprofil.php');
    } else{
        echo "Napaka!";
    }
} else {
    header("Location: mojprofil.php");
}
?>

【问题讨论】:

  • 你没有给文件命名? "$uploads_dir/$username" 目录对吗?但是你也需要在那里放一个文件名。
  • 是的,它确实存在,我之前保存过其他东西,所以我猜它是可写的

标签: php


【解决方案1】:

你这样说:

有文件夹 userfiles/grega

但错误是这样说的:

move_uploaded_file(/userfiles/grega)

这是两条非常(即使是微妙地)不同的路径。还要注意您在代码中定义路径的位置:

$uploads_dir = '/userfiles';

代码正在整个文件系统的根目录中查找名为userfiles 的文件夹,而不仅仅是在网站中。也许你打算这样做?:

$uploads_dir = 'userfiles';

【讨论】:

  • @user3389744:定义“不起作用”。目标文件的完整路径名/文件名的运行时值是多少?服务器上是否存在整个路径?可写吗? PHP 用户上下文 是否可写?您可以在这里收集很多信息。
  • /srv/disk3/1618233/www/netdisk.co.nf/userfiles/grega 这就是整个路径并且不起作用 - 它引导我进入 403 错误网页
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2017-10-03
  • 1970-01-01
相关资源
最近更新 更多