首頁  >  文章  >  後端開發  >  file_get_contents() 可以使用 multipart/form-data 執行檔案上傳嗎?

file_get_contents() 可以使用 multipart/form-data 執行檔案上傳嗎?

Linda Hamilton
Linda Hamilton原創
2024-10-18 13:19:30441瀏覽

Can file_get_contents() Perform File Uploads with multipart/form-data?

使用file_get_contents() 和multipart/form-data 上傳檔案

儘管使用CURL 上傳檔案很容易,但使用者可能會好奇是否file_get_contents() 可以使用http 流上下文執行此任務。

多部分內容類型對文件上傳提出了挑戰。它需要定義一個邊界來分隔上傳檔案中的每個部分。此邊界與內容正文中未包含的任何字串一樣,可以使用帶有 microtime(true) 的時間戳來產生。

定義邊界後,必須在 Content-Type 標頭中指定它。此外,還需要建構遵循HTTP規範的內容主體和發送的標頭。每個表單欄位名稱必須包含在 Content-Disposition 標頭中,以及檔案名稱和 Content-Type 標頭。

如果要上傳多個文件,則必須為每個文件重複生成 $content 字串的過程文件,相應地指定不同的 FORM_FIELD 值。

最後,可以使用 file_get_contents() 的 context 參數來建立流上下文。 context 參數中的 http 陣列配置方法 (POST)、標頭(包括具有多部分邊界的 Content-Type)和內容。

透過使用設定的上下文執行 file_get_contents(),檔案上傳就是啟動。值得注意的是,二進位檔案編碼是不必要的,因為 HTTP 可以有效處理二進位資料。

以上是file_get_contents() 可以使用 multipart/form-data 執行檔案上傳嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn