ftp_put() 错误无法打开流:没有那个文件或目录
ftp_put() error failed to open stream: No such file or directory
所以我试图在虚拟主机上创建一个 php 允许客户端将文件上传到虚拟主机,然后虚拟主机使用 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]:无法打开流:没有这样的文件或目录。
所以我去我子域下的虚拟主机中的文件管理器,没有名为tmp的目录,我没有权限进入虚拟主机的根目录。
感谢您的帮助。
感谢 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']。
所以我试图在虚拟主机上创建一个 php 允许客户端将文件上传到虚拟主机,然后虚拟主机使用 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]:无法打开流:没有这样的文件或目录。
所以我去我子域下的虚拟主机中的文件管理器,没有名为tmp的目录,我没有权限进入虚拟主机的根目录。
感谢您的帮助。
感谢 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']。