phpfilesystem,php filesystem七牛雲分片上傳

本文目錄一覽:

filesystem.copyfile 有文件卻拷貝失敗

filesystem.copyfile 有文件卻拷貝失敗的解決方法如下:

先在自己的D盤上建一aa.txt,

再用IE,地址欄輸入\\shd01\d\aa.txt

注意對方給你的許可權,如對方是Win2000系統,則要求你是對方的一個用戶

ORG/Net庫的FileSystem.class.php文件中copyFile和moveFile函數,函數傳入參數都是$old_path,$new_path,$name,函數內部卻使用了

$old_name = iconv($this-config[‘charset’],’GBK’,$old_name);

$new_name = iconv($this-config[‘charset’],’GBK’,$new_name);

PHP中的文件系統函數(一)

從這篇文章開始,我們將學習一系列的 PHP 文件系統相關函數。其實這些函數中,有很多都是我們經常用到的,大家並不需要刻意地去記住它們,只要知道有這麼個東西,在使用的時候記得來查文檔就可以了。

文件路徑相關的函數往往在一些框架中會比較常見,而且多會配合 __FILE__ 、 __DIR__ 之類的魔術常量使用。

basename() 函數是獲得路徑中的文件名,它有兩個參數,第一個是文件的路徑,第二個是過濾掉的內容,比如第一條測試語句我們過濾掉文件的後綴名。

dirname() 返回的是路徑中的路徑部分,也就是不包含文件名的那部分內容,和 basename() 正好是相反的功能。

pathinfo() 函數用於以數組的形式返迴路徑中的信息,從結果來看,我們可以看到文件的 dirname 部分,basename 部分,以及文件的擴展名 extension 和不包含擴展名的 filename 內容。

realpath() 返回的是規範化的絕對路徑名,它擴展所有的符號連接並且處理輸入的路徑中的 ./ 、 ../ 以及多餘的 / ,返回的內容是標準規範的絕對路徑。

接下來,我們學習一些修改文件相關屬性的函數,主要就是在 Linux 系統環境中的文件許可權信息的操作。

當然,首先我們得創建一個文件。和 Linux 中的命令是非常類似的。

touch() 函數除了給出要創建的文件名之外,還有兩個可選參數可以指定文件的創建時間及訪問時間,不給參數的話默認就是當前時間。這個文件名可以是相對或絕對路徑中有許可權的目錄,並在該目錄下創建一個空的文件。

通過 fileowner() 函數,我們可以獲得某個文件所屬的用戶,默認情況下我們的用戶是當前運行 PHP 腳本的用戶,也就是系統目前的登錄用戶。在這裡,我們使用 chown() 函數,將用戶改為 www 用戶。clearstatcache() 是用於清理文件系統的緩存信息,如果不清理一下的話,fileowner() 返回的依然還是之前的用戶信息。

同理,使用 filegroup() 函數獲得文件的屬組信息,chgrp() 用於修改文件的屬組。fileperms() 用於返迴文件的許可權信息,它返回的是數字模式的文件訪問許可權,這裡我們使用 sprintf() 格式化結果後獲得我們常用的 Linux 系統許可權格式。chmod() 函數用於修改文件的許可權,它的許可權參數是三個 8 進位數據組成的數字,也就是代表 Linux 系統中的 1 、2 、4 和它們的組合,所以我們需要在前面再加上一個 0 用於確保操作能夠正常執行。關於系統文件許可權的知識大家需要認真學習 Linux 系統中相關的內容。

注意,上述函數如果在命令行中運行失敗,大部分原因是沒有許可權,可以使用 sudo 進行測試。在 fastcgi 中運行時,就更加需要注意許可權問題,僅在我們伺服器可以操作的目錄中進行安全的文件許可權修改。

stat() 函數可以獲取到指定文件的所有屬性信息,在這裡我們可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。

在 Linux 系統中,有軟連接和硬連接的相關知識。其實軟連接就像是 Windows 中的快捷方式,而硬連接相關於複製了一份數據。在 PHP 中,也為我們提供了創建軟硬連接以及相關的一些操作。

使用 link() 函數創建的就是一個指定文件的硬連接文件,而使用 symlink() 創建的則是一個軟連接文件。相對來說,我們使用軟連接的場景會更多一些。lstat() 就和 stat() 函數的功能一樣,查看文件的各種屬性信息,不過 lstat() 函數針對的是軟硬連接文件。

同樣地,我們也可以修改軟硬連接的用戶和用戶組信息,不過它們的信息不能通過 fileowner() 或 filegroup() 查看。因為它們是連接文件,本身還是和原始文件綁定在一起的,使用 fileowner() 這類的函數查看到的依然是原始文件的信息。我們可以在系統環境中使用 ls -l 查看連接文件的用戶和用戶組信息是否修改成功。

今天的內容比較簡單,而且修改許可權的操作也並不常用。不過對於系統安全來,它們還是非常有用的,比如對於上傳來說,我們要預防上傳可執行文件的話,就可以通過修改文件的許可權來讓文件無法直接運行,從而起到安全保護的作用。另外,目錄路徑相關的操作也是一些框架的基礎,幾乎所有框架的入口或者說是 Composer 的入口,都會見到 dirname() 以及 basename() 之類函數的身影。

測試代碼:

中的文件系統函數(一).php

參考文檔:

PHP-Filesystem函數簡介文件系統操作-php實例教程

fwrite()寫入文件。3glob()返回一個包含匹配指定模式的文件名/目錄的數組。4is_dir()判斷指定的文件名是否是一個目錄。3is_executable()判斷文件是否可執行。3is_file()判斷指定文件是否為常規的文件。3is_link()判斷指定的文件是否是連接。3is_readable()判斷文件是否可讀。3is_uploaded_file()判斷文件是否是通過

HTTP

POST

上傳的。3is_writable()判斷文件是否可寫。4is_writeable()is_writable()

的別名。3link()創建一個硬連接。3linkinfo()返回有關一個硬連接的信息。3lstat()返回關於文件或符號連接的信息。3mkdir()創建目錄。3move_uploaded_file()將上傳的文件移動到新位置。4parse_ini_file()解析一個配置文件。4pathinfo()返回關於文件路徑的信息。4pclose()關閉有

popen()

打開的進程。3popen()打開一個進程。3readfile()讀取一個文件,並輸出到輸出緩衝。3readlink()返回符號連接的目標。3realpath()返回絕對路徑名。4rename()重名名文件或目錄。3rewind()倒迴文件指針的位置。3rmdir()刪除空的目錄。3set_file_buffer()設置已打開文件的緩衝大小。3stat()返回關於文件的信息。3symlink()創建符號連接。3tempnam()創建唯一的臨時文件。3tmpfile()建立臨時文件。3touch()設置文件的訪問和修改時間。3umask()改變文件的文件許可權。3unlink()刪除文件。3

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232073.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 12:50
下一篇 2024-12-11 12:50

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 百度網盤Python上傳

    百度網盤是一個常用的雲存儲平台,提供了多種上傳文件的方式,其中包括使用Python進行上傳。本文將從安裝Python、安裝依賴庫、上傳文件三個方面進行詳細闡述。 一、安裝Pytho…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 如何使用git拉出某個用戶上傳的文件?

    Git是一個非常流行的版本控制系統,它可以幫助團隊協作,並保證代碼的版本控制。有時候,我們需要拉出某個用戶上傳的文件,但不知道從哪裡開始。本文將會從多個方面詳細闡述如何使用git拉…

    編程 2025-04-28
  • 上傳多媒體文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一個非常常用的方法,它允許我們將本地的多媒體文件上傳到微信伺服器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • NB設備上傳數據方案

    NB(Narrow Band)是一種物聯網通信技術,可以實現低功耗、寬覆蓋、多連接等特點。本文旨在探討如何使用NB設備上傳數據。在這篇文章中,我們將介紹NB設備上傳數據的基本原理、…

    編程 2025-04-27
  • Python上傳ftp文件用法介紹

    本文將從多個方面詳細闡述Python上傳ftp文件的方法和注意事項,幫助讀者快速掌握如何使用Python上傳ftp文件。 一、安裝ftplib庫 首先,在Python中使用ftp上…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27

發表回復

登錄後才能評論