使用共享网络路径将文件上传到目录
Uploading file to directory using shared network path
我不确定为什么我可以从目录中读取文件但不能写入文件。它位于共享网络路径上。
我的网络团队确认“修改权限”已针对用户帐户设置。
这是我用来检查文件路径是否有效的方法:
<?php
$filename = '//server-name/folder1/folder1/folder3/filename.txt';
if (file_exists($filename)) {echo "good";}
else{echo "bad";}
?>
使用上面的方法,我能够在控制台中得到“good”的输出。
然后我用下面的看看能不能列出目录下的所有文件:
<?php
$dir = '//server-name/folder1/folder2/folder3';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);
print_r($files1);
print_r($files2);
?>
使用上面的方法,我成功地打印出了目录中的所有文件。
这是我遇到问题的代码:
<?php
$filename = "newfile";
$thecall = mysqli_query($dbc, "CALL SP_SVC_ALLOCATION($servicecodes)");
$out = array();
while($row = $thecall->fetch_assoc()){
$out[] = $row;
}
$file = fopen("//server-name/folder1/folder2/folder3/$filename.txt", 'w');
foreach ($out as $fields) {
fputcsv($file, $fields);
}
if($file){$result = "File was uploaded";}
else{$result = "File failed to upload";}
?>
使用上面的方法,输出是“文件上传失败”。
为什么我可以从路径读取,但不能上传?
如前所述,我确信权限已经设置。我需要获得共享网络驱动器的完全权限吗?
试试这个:
$file = fopen("//server-name/folder1/folder2/folder3/$filename.txt", 'w');
$csv="";
foreach ($out as $fields){
$csv.= implode(',',$fields)."\n";
}
fwrite($file,$csv);
fclose($file);
事实证明网络路径没有用户的完整权限。它已经更新,现在我可以毫无问题地上传到路径。
我不确定为什么我可以从目录中读取文件但不能写入文件。它位于共享网络路径上。
我的网络团队确认“修改权限”已针对用户帐户设置。
这是我用来检查文件路径是否有效的方法:
<?php
$filename = '//server-name/folder1/folder1/folder3/filename.txt';
if (file_exists($filename)) {echo "good";}
else{echo "bad";}
?>
使用上面的方法,我能够在控制台中得到“good”的输出。
然后我用下面的看看能不能列出目录下的所有文件:
<?php
$dir = '//server-name/folder1/folder2/folder3';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);
print_r($files1);
print_r($files2);
?>
使用上面的方法,我成功地打印出了目录中的所有文件。
这是我遇到问题的代码:
<?php
$filename = "newfile";
$thecall = mysqli_query($dbc, "CALL SP_SVC_ALLOCATION($servicecodes)");
$out = array();
while($row = $thecall->fetch_assoc()){
$out[] = $row;
}
$file = fopen("//server-name/folder1/folder2/folder3/$filename.txt", 'w');
foreach ($out as $fields) {
fputcsv($file, $fields);
}
if($file){$result = "File was uploaded";}
else{$result = "File failed to upload";}
?>
使用上面的方法,输出是“文件上传失败”。
为什么我可以从路径读取,但不能上传?
如前所述,我确信权限已经设置。我需要获得共享网络驱动器的完全权限吗?
试试这个:
$file = fopen("//server-name/folder1/folder2/folder3/$filename.txt", 'w');
$csv="";
foreach ($out as $fields){
$csv.= implode(',',$fields)."\n";
}
fwrite($file,$csv);
fclose($file);
事实证明网络路径没有用户的完整权限。它已经更新,现在我可以毫无问题地上传到路径。