警告:file_get_contents 无法打开流:没有那个文件或目录?
Warning: file_get_contents failed to open stream: No such file or directory?
在此我正在上传文件,然后尝试将此文件发送到另一个 VM。
代码在这里
// Debugging information -- No use in output
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
$file_name = $_FILES['userfile']['name'];
echo $file_name;
echo gettype($file_name);
echo "<br/>";
输出:
Here is some more debugging info:Array
(
[userfile] => Array
(
[name] => 6274e8cb0358ef3e3906a91036bc84138a8fde606a6e926b9a580c79f9cfc489
[type] => application/octet-stream
[tmp_name] => /tmp/php3Yt3T5
[error] => 0
[size] => 3107800
)
)
6274e8cb0358ef3e3906a91036bc84138a8fde606a6e926b9a580c79f9cfc489string
它正在打印详细信息 correctly.But 当我尝试将此文件发送到远程 VM 时,它正在创建错误。
代码延续
$localFile='/var/www/uploads/$file_name';
echo $localFile;
$remoteFile='/home/nsadmin/$file_name';
$host='192.168.150.85';
$port=22;
$user='someusername';
$pass='somepassword';
$connection= ssh2_connect($host,$port);
ssh2_auth_password($connection, $user, $pass);
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp$remoteFile", 'w');
$file = file_get_contents($localFile);
fwrite($stream, $file);
fclose($stream);
错误日志:
/var/www/uploads/$file_name Warning: file_get_contents(/var/www/uploads/$file_name): failed to open stream: No such file or directory in /var/www/MTP/upload.php on line 111
有关如何修复此错误的任何建议。
P.S :
我在 php 文件
的开头使用这些进行调试
error_reporting(E_ALL);
ini_set('display_errors',1);
ini_set('log_errors',1);
尝试这样的字符串可能会有帮助
只需使用 .用于连接。
$localFile='/var/www/uploads/$file_name';
到
$localFile='/var/www/uploads/'.$file_name;
和
$remoteFile='/home/nsadmin/$file_name';
到
$remoteFile='/home/nsadmin/'.$file_name;
改变
$localFile='/var/www/uploads/$file_name';
到
$localFile="/var/www/uploads/$file_name";
$变量不在 ' 引号内解析
另一种方式
$localFile="/var/www/uploads/".$file_name;
与遥控器相同。
在php中你不能在单引号中使用变量使用双引号或在字符串外使用变量
$localFile='/var/www/uploads/$file_name';
改为
$localFile='/var/www/uploads/'.$file_name; or $localFile="/var/www/uploads/$file_name";
在此我正在上传文件,然后尝试将此文件发送到另一个 VM。
代码在这里
// Debugging information -- No use in output
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
$file_name = $_FILES['userfile']['name'];
echo $file_name;
echo gettype($file_name);
echo "<br/>";
输出:
Here is some more debugging info:Array
(
[userfile] => Array
(
[name] => 6274e8cb0358ef3e3906a91036bc84138a8fde606a6e926b9a580c79f9cfc489
[type] => application/octet-stream
[tmp_name] => /tmp/php3Yt3T5
[error] => 0
[size] => 3107800
)
)
6274e8cb0358ef3e3906a91036bc84138a8fde606a6e926b9a580c79f9cfc489string
它正在打印详细信息 correctly.But 当我尝试将此文件发送到远程 VM 时,它正在创建错误。
代码延续
$localFile='/var/www/uploads/$file_name';
echo $localFile;
$remoteFile='/home/nsadmin/$file_name';
$host='192.168.150.85';
$port=22;
$user='someusername';
$pass='somepassword';
$connection= ssh2_connect($host,$port);
ssh2_auth_password($connection, $user, $pass);
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp$remoteFile", 'w');
$file = file_get_contents($localFile);
fwrite($stream, $file);
fclose($stream);
错误日志:
/var/www/uploads/$file_name Warning: file_get_contents(/var/www/uploads/$file_name): failed to open stream: No such file or directory in /var/www/MTP/upload.php on line 111
有关如何修复此错误的任何建议。
P.S :
我在 php 文件
的开头使用这些进行调试error_reporting(E_ALL);
ini_set('display_errors',1);
ini_set('log_errors',1);
尝试这样的字符串可能会有帮助
只需使用 .用于连接。
$localFile='/var/www/uploads/$file_name';
到
$localFile='/var/www/uploads/'.$file_name;
和
$remoteFile='/home/nsadmin/$file_name';
到
$remoteFile='/home/nsadmin/'.$file_name;
改变
$localFile='/var/www/uploads/$file_name';
到
$localFile="/var/www/uploads/$file_name";
$变量不在 ' 引号内解析
另一种方式
$localFile="/var/www/uploads/".$file_name;
与遥控器相同。
在php中你不能在单引号中使用变量使用双引号或在字符串外使用变量
$localFile='/var/www/uploads/$file_name';
改为
$localFile='/var/www/uploads/'.$file_name; or $localFile="/var/www/uploads/$file_name";