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 );
当我尝试写入位于 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 );