簡體   English   中英

在php中將文件上傳到網絡驅動器

[英]upload file to network drive in php

用於將文件上傳到映射的網絡驅動器的php腳本不起作用。 以下是php腳本:

$newfilename = "something.wav";
$path  = 'Y:\\uploaded\\'.$newfilename;
copy($_FILES['ufile']['tmp_name'], $path);

我還檢查了網絡驅動器文件夾的權限。我已將Y驅動器映射到上載文件夾中的網絡驅動器(10.4.4.32)d驅動器。 它具有完全控制權限。 我嘗試過以下網絡驅動器的路徑:

  • Y:\\上載\\
  • \\\\ 10.4.4.32 \\ d $ \\已上傳\\
  • move_uploaded_file($ _ FILES ['ufile'] ['tmp_name'],$ path);

但是,它可以在本地驅動器上運行,例如:

  • d:\\ uploaded \\該文件已上傳到本地驅動器,但無法上傳到網絡驅動器。 我已將php 5.3和IIS 7用於應用程序

顯示的錯誤: 警告:copy(\\ 10.4.4.32 \\ d $ \\ uploaded \\ test.wav):無法打開流:權限在第107行的C:\\ inetpub \\ wwwroot \\ myapp \\ upload.php中被拒絕

我對所有人的上傳文件夾的屬性均擁有完全控制的權限。 還有其他許可,我應該解決。

首先,檢查copy()返回false。 這表明確實存在錯誤。

然后,在php.ini中啟用track_errors指令,以及將display_errorserror_reporting設置為最高級別。 激活track_errors (並重新啟動Web服務器)后,在復制后使用以下行:

var_dump($php_errormsg, error_get_last());

這應該為您提供有關該問題的更好提示。


還要確保,如果您使用safe_modeopen_basedir ,則允許您移動到的路徑。

網絡驅動器可能不適用於apache和php,因此請使用此$ path =“ \\\\ machine-name \\ share_path \\”;

在兩台計算機上都設置一個用戶帳戶,例如user:ApacheUser

轉到服務並單擊Apache,然后使用剛創建的帳戶登錄(第二個選項卡)源計算機的Apache服務。

重新啟動apache服務

那么現在應該可以工作了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM