1

マップされたネットワーク ドライブ「Z://」があり、PHP ファイルは「C://」ドライブに保存されています。opendir() または fopen() を使用しようとすると、エラーが発生し続けます。マップされたドライブの理由は、ドライブへの直接書き込みに問題があったためです。

opendir (マップされたドライブ):

ディレクトリを開くことができませんでした: そのようなファイルまたはディレクトリはありません [ファイル] => C:\path-to-php-file\phpfile.php [行] => 2 )

fopen: (マップされたドライブと絶対パス)

ストリームを開くことができませんでした: そのようなファイルまたはディレクトリはありません [ファイル] => C:\path-to-php-file\phpfile.php [行] => 2 )

ストリームを開くことができませんでした: 許可が拒否されました [ファイル] => C:\path-to-php-file\phpfile.php [行] => 2 )

編集 - PHP コードを以下に示します。フォルダーのミッションを共有しているにもかかわらず、絶対パスではアクセス許可が許可されていなかったため、ネットワーク ドライブを使用していることに注意してください。サーバーフォルダーとネットワークドライブでファイルを手動で開いたり、読み書きしたりすることもできます

<?php
if(fopen(('\\\\servername\\serverdirectory\\thecsvfile.csv'), "w+")){
    echo 'it worked!';
}
else{
    print_r(error_get_last()); //prints 'permission denied - which is why network drive has been mapped and given permissions'

if(fopen(('Z://thecsvfile.csv'), "w+")){
    echo 'it worked!';
}
else{
    print_r(error_get_last()); //prints 'No such file or directory...'
}
?>
4

1 に答える 1

1

私が発見したこの問題の (理想的ではない) 解決策は、php ファイルと同じドライブ (ドライブ「C://」) に csv を作成し、Windows タスク スケジューラで cron ジョブを作成して .bat ファイルを実行することです。ファイルを 1 時間ごとにネットワーク ドライブにコピーします。

于 2015-02-09T10:07:04.030 に答える