* 目次 [#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サーバ・フレームワークに依存)。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS