搜尋

首頁  >  問答  >  主體

PHP SMB檔案上傳導致500內部伺服器錯誤

<p>當我嘗試透過SMB將本機資料夾上的檔案上傳到FTP伺服器時,檔案會被上傳,但伺服器回傳一個500內部伺服器錯誤,並顯示以下訊息:</p> <blockquote> <p>警告:fopen(File.xls):無法開啟流:沒有這個檔案或目錄</p> </blockquote> <p>這是我的上傳函數:</p> <pre class="brush:php;toolbar:false;">public function upload($fileToUpload, $targetPath = "") { if (!empty($targetPath)) { if (substr($targetPath, -1, 1) != '/') { $targetPath .= "/"; } } $fileName = basename($fileToUpload); $this->srvShare->put($fileToUpload, $targetPath . $fileName); }</pre> <p>在這種情況下,<strong>$fileToUpload</strong> 是類似 'File.xls' 的內容。 我已經嘗試給函數傳遞整個路徑,但仍然導致相同的錯誤。 上傳是成功的...檔案已經在伺服器上,但程式碼無法繼續執行,因為仍然導致500內部伺服器錯誤。 </p> <p>這是smb NativeShare中的put()函數:</p> <pre class="brush:php;toolbar:false;">/*** 上傳本機文件 * * @param string $source 本機文件 * @param string $target 目標文件 * @return bool * * @throws \Icewind\SMB\Exception\NotFoundException * @throws \Icewind\SMB\Exception\InvalidTypeException*/ public function put($source, $target) { $sourceHandle = fopen($source, 'rb'); $targetUrl = $this->buildUrl($target); $targetHandle = $this->getState()->create($targetUrl); while ($data = fread($sourceHandle, NativeReadStream::CHUNK_SIZE)) { $this->getState()->write($targetHandle, $data, $targetUrl); } $this->getState()->close($targetHandle, $targetUrl); return true; }</pre></p>
P粉113938880P粉113938880441 天前647

全部回覆(1)我來回復

  • P粉882357979

    P粉8823579792023-08-31 09:11:58

    好的..所以我成功修復了錯誤。 問題是我已經在其他地方使用了這個上傳功能,並且我假設我可以再次使用它,並且參數相同..我需要更改一個參數,現在它可以工作:)

    回覆
    0
  • 取消回覆