PHP fopen 从 windows 到外部 unix 服务器

PHP fopen from windows to external unix server

当我尝试写入位于 unix 服务器上的文件时,我遇到了 fopen() 函数 returns "failed to open stream: No such file or directory" 的问题。 我的 PHP 申请是 运行 Windows。

这是我使用 fopen 函数的代码:

$path = "/212.120.15.80/tmp/NMJ.pdf"; //Path to unix server
$url = $_FILES [$fileElementName] ['tmp_name'];


     $newfname = $path;

     $file = fopen ( $url, "rb" );
     if ($file) {
        $newf = fopen ( $newfname, "wb" );
        $fopen = $newf;

        if ($newf) {
            while ( ! feof ( $file ) ) {
                fwrite ( $newf, fread ( $file, 1024 * 8 ), 1024 * 8 );
            }
        }
     }
     if ($fopen === false) {
        $return_fopen = 'Fichier non téléchargé';
     } else {
        $return_fopen = 'Le fichier a été déposé sur le serveur';
     }

     if ($file) {
        fclose ( $file );
     }
     if ($newf) {
        fclose ( $newf );
     }

我对 tmp 目录有 write/read 访问权限。

当我使用以下路径在 windows 服务器上写入文件时,此代码有效:“\\Example/share”

首先,在尝试加载文件内容之前检查文件是否存在是值得的。在这种情况下使用 file_exists()。 然后,您的路径设置为本地文件。使用像

这样的东西
$path = "http://212.120.15.80/tmp/NMJ.pdf"

我post我的代码给需要的人

$docup = 'http://212.120.15.80'
$filename = $_FILES [$fileElementName] ['name'];

$ch = curl_init ( $docup );
curl_setopt ( $ch, CURLOPT_URL, $docup . "/uploadfilescript.php" );
curl_setopt ( $ch, CURLOPT_HEADER, false );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $ch, CURLOPT_POST, true );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, array (
        'file' => '@' . $url,
        'filename' => $filename 
) );

if (curl_exec ( $ch ) === FALSE) {
        $return = 'Le fichier n\' a pas pu être téléchargé';
} else {
    curl_exec ( $ch );
    $return = 'Le fichier a été déposé sur le serveur';
}

curl_close ( $ch );