ftp_put()错误无法打开流:没有这样的文件或目录

时间:2015-06-04 14:32:41

标签: php upload ftp tmp

所以我试图在webhost上创建一个php允许客户端将文件上传到webhost然后webhost使用ftp_put将文件上传到另一个ftp服务器。以下函数用于上传文件。

    //upload ftp
    function ftp_upload($conn, $vid_name, $video){
    //get tmp file
    $file_tmp_name = $video['tmp_name'];
    echo $file_tmp_name;

    //combine name with extension name
    $server_file_name = $vid_name . "." .      pathinfo($video['name'],PATHINFO_EXTENSION);

           //upload video
        $upload = ftp_put($conn, $server_file_name, $file_tmp_name , FTP_BINARY);
    return $upload;

}

然而它不断收到错误信息, 警告:ftp_put(/ tmp / phpKOtNWK)[function.ftp-put]:无法打开流:没有这样的文件或导演。

所以我去了我的子域下的webhost中的文件管理器,没有这样的名为tmp的目录,我没有权限进入webhost的根目录。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

感谢Twisty 23和Jon Stirling的建议,我已经解决了这个问题。不幸的是没有人发布回答(所有评论),这让我感到不安,所以我只会自己回答。 这是我在开始时使用的代码重定向

//store video information into session 
if(count($_POST) >0 ){           
    $_SESSION['vid_name'] = $_POST['vid_name'];
    $_SESSION['video'] = $_FILES['video'];

    //move tmp file to permanent location temp folder
    move_uploaded_file($_FILES['video']['tmp_name'], "./temp/" . $_POST['vid_name'] . ".tmp");

    //change tmp location to temp folder
    $_SESSION['video']['tmp_name'] = "./temp/" . $_POST['vid_name'] . ".tmp";

    //redirect
    header("Location: " . $_SERVER['REQUEST_URI']); 
    die();

}

然后我不需要在ftp_upload函数上更改任何内容,我可以立即使用$ _SESSION ['video'] ['tmp_name']。