- 追加された行はこの色です。
- 削除された行はこの色です。
Open棟梁Project - マイクロソフト系技術情報 Wiki
* 目次 [#bd8e54b2]
#contents
*概要 [#wfafecc4]
ファイルのアップロードについての情報を纏めます。
-ダウンロードについては、
--[[ダウンロードのいろいろ]]
*通常のアップロード方法 [#a015b334]
**multipart/form-data [#e367a311]
WWWブラウザのFormからファイルアップロードする一般的方法
<INPUT type="file">を使用してアップロードできる。
-INPUT type=file-HTMLタグリファレンス~
http://www.htmq.com/html/input_file.shtml
***HTTPメソッド [#qf3ba1b0]
POSTメソッドを使用する。~
PUTは使用できない模様(後述)。
**その他 [#e777e3f4]
***HTTP1.1メソッド [#vfb43775]
PUTメソッドなども使用できるが、~
multipart/form-data とは組み合わせられない模様。~
(application/x-www-form-urlencodedでは動作する)
-HTTPメソッドのPOSTとPUTの使い分け - アインシュタインの電話番号~
http://blog.ruedap.com/2011/03/24/http-method-post-put
-php - REST PUT send data with multipart-form-data - Stack Overflow~
http://stackoverflow.com/questions/18530253/rest-put-send-data-with-multipart-form-data
***WebDAV追加メソッド [#fe706d33]
-WebDAV - Wikipedia~
http://ja.wikipedia.org/wiki/WebDAV
--ボディ部では、クライアント・サーバ双方ともXMLを用いる。
--HTTP 1.1(のメソッド)に加え
---GET
---HEAD
---POST
---PUT
---DELETE
---OPTIONS
--次のメソッドが存在する。
---PROPFIND~
プロパティの取得
---PROPPATCH~
プロパティの変更
---MKCOL~
指定したURIの場所に新たな資源を作成する。
---COPY~
指定したURIが示す資源およびその属性値を別のURIにコピーする。
---MOVE~
指定したURIが示す資源およびその属性値を別のURIに移動する。
---LOCK~
指定したURIが示す資源のファイルロックを設定する。~
共有ロックと排他ロックの二種類が利用できる。
---UNLOCK~
指定したURIが示す資源のロックを解除する。
*大容量ファイルのアップロード [#lcf58b88]
大量データのアップロードには、以下の方式がある。
-分割アップロード
-その他の方法
--MTOM
Streaming、MTOMなどに対応している~
APサーバは少ないと考えられるため、~
分割アップロードが一般的設計と考える。
*分割アップロード [#o2cfe3b7]
主に、APサーバのStreaming対応の有無によって、~
分割アップロードが必要になることがある。
**必要性 [#h718965e]
Streaming対応が無いAPサーバでは、~
multipart/form-dataを全てメモリに溜め込んでしまうため、~
メモリ・リークに陥る。この対応として分割アップロードがある。
**選択肢 [#v42bb928]
***クライアントを作りこむ。 [#b0afcb5c]
HTTPクライアントライブラリ(API)を使用して~
ファイル分割アップロード処理を行うHTTPクライアントを開発する。
***JavaScriptライブラリを使用する。 [#k8837075]
jQuery-File-Uploadを使用して、分割アップロードが可能。
**注意点 [#md91fb8b]
こちらと同様、2GB以上のファイルを扱えないケースがある。
-[[2GB制限>ダウンロードのいろいろ#h23ea62b]]
*その他の方法 [#ad7b3a27]
**MTOM [#w32a688f]
MTOM(Message Transmission Optimization Mechanism)
-APサーバのStreaming対応が無い場合も、MTOMでStreamingがサポートされる。
-JavaScriptからMTOMのWebサービスは利用できないので~
Webサービス・クライアントの開発が必要になる。
-MTOMはWCFなどを使用したWebサービスで利用可能~
(対応可能かどうか?は使用するAPサーバ・フレームワークに依存)。