使用共享网络路径将文件上传到目录

时间:2020-07-28 13:31:36

标签: php directory upload

我不确定为什么我能够从目录中读取文件但不能写入该文件。它在共享的网络路径上。

我得到网络团队的确认,该用户帐户已具有“修改权限”。

这是我用来检查文件路径是否有效的方法:

<?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";}  
?>

使用上述方法,输出为“文件上传失败”。

为什么我可以从路径读取但不能上传?

如前所述,我确信已经设置了权限。我需要获得共享网络驱动器上的全部权限吗?

2 个答案:

答案 0 :(得分:0)

事实证明,网络路径没有用户的全部权限。它已经更新,现在我可以上传到路径了。

答案 1 :(得分:-1)

尝试一下:

$file = fopen("//server-name/folder1/folder2/folder3/$filename.txt", 'w');
$csv="";
foreach ($out as $fields){
    $csv.= implode(',',$fields)."\n";
}

 
fwrite($file,$csv);
fclose($file);