PHP
所有Api都使用RESTFul
風格。 但是在使用PUT
上傳文件的時候,發現$_FILES
沒有文件資訊(可能沒有上傳臨時文件,待驗證),使用POST
是可以的,並且PUT
從標準輸入流
標準輸入流
<code>#获取到的输入流内容 ------WebKitFormBoundarybzEhWNCqbo9qKZBX Content-Disposition: form-data; name="upload"; filename="一些不错的职位.md" Content-Type: text/markdown xxxx xxxx xxxx ------WebKitFormBoundarybzEhWNCqbo9qKZBX--</code>目前我的思路是兩個:
如果
上傳
如果
不上傳臨時檔案:試著解析這串
form-data傳過來的參數,但我不知道這種格式
php
在跨域的時候,普通的form表單(GET, POST)沒問題,但是使用PUT,DELETE的話,需要設定跨域頭。
MDN HTTP Method文件竟然沒有
PUT,
DELETE
PHP取得
PUT,
DELETE需要到
file_get_contents('php://input');取得參數訊息,沒有類似
$_PUT,
_DELETE
_DELETE
_DELETE_DELETE_DELETE
_DELETE
============= [ 22:01 ] ===================
到stackoverflow
逛了下,發現不少碰到相同問題的,暫時沒看到比較好的解決方案。
補充下,這篇文章jquery ajax put file, php save file,部落客和我碰到了一樣的問題,不過他是透過用正規來解析處理資料的。
我在想,有沒有比較好的方案,能夠模仿PHP
處理POST
請求一樣,把
串,解析出來,普通參數,存到
$_PUT(
$_POST) , 文件傳到臨時目錄,然後返回文件資訊到$_FILES
.
============ [ 10-10 10:16 ] ===================
的
composer元件。
回覆內容:
最近因為在做前後端分離,後端PHP
所有Api都使用RESTFul
風格。
但是在使用PUT
上傳文件的時候,發現
沒有文件資訊(可能沒有上傳臨時文件,待驗證),使用
POST從標準輸入流
標準輸入流
<code>#获取到的输入流内容 ------WebKitFormBoundarybzEhWNCqbo9qKZBX Content-Disposition: form-data; name="upload"; filename="一些不错的职位.md" Content-Type: text/markdown xxxx xxxx xxxx ------WebKitFormBoundarybzEhWNCqbo9qKZBX--</code>
如果
上傳臨時檔案(這個正在測試...): 如果上傳了,可以讀取臨時檔案。
php
有沒有對應方法來解析。
順帶吐槽下,RESTFul用起來常常會有問題:
在跨域的時候,普通的form表單(GET, POST)沒問題,但是使用PUT,DELETE的話,需要設定跨域頭。
MDN HTTP Method文件竟然沒有
PUT,
DELETE的詳細介紹...
PHP取得
PUT
file_get_contents('php://input');
取得參數訊息,沒有類似$_PUT,
_DELETE
_DELETE
_DELETE_DELETE_DELETE
_DELETE_DELETE
_DELETE
============= [ 22:01 ] ===================
到stackoverflow
逛了下,發現不少碰到相同問題的,暫時沒看到比較好的解決方案。
============ [ 10-10 10:16 ] ===================
這片博文如何使用multipart/form-data格式上傳文件,有講到form-data的格式。
目前先自己簡單寫一個解析form-data
的composer
元件。
PHP的全域變數$_FILES只能取得post方式上傳的文件,若你要使用put 來上傳文件,你必須自己處理該stream
手機端來說,目前的主流是 get+post+json
4,標準的form data上傳格式
php put需要單獨解析,另put一般用於接受json格式的資料
謝謝回答,另外,問題重新編輯了下, :)