HTTPサーバ(WebDAV)にファイルをアップロードとダウンロード(あるいは開く)
の操作はCURL7.0で実現できますか、ご存知の方はいらっしゃいますでしょうか。
教えていただけませんか。よろしくお願いします。
HttpFileクラス のhttp-read-open-byteメソッドを使って、POST(引数にrequest-method = HttpRequestMethod.post)でデータ(引数request-dataにファイルデータをセット)をサーバに送信し、サーバサイドでは
Jakarta commonsのUploadFile などを使って受信する実装することで、HTTPサーバにファイルを送信することができます。
ちなみに、イメージのようなバイナリファイルでなく、テキストファイルであればhttp-read-openメソッドを利用することで実現できます。
ご回答をいただきありがとうございます。
CURLは直接にHttpサーバに接続して操作できませんか?
(普通なupload/dowand/open操作です)
よろしくお願いします。
他のAjaxなどと同様に、HTTPでファイルアップロードはサーバサイドの作りこみが少々必要となってきます。
ダウンロードなどについては可能です。(http-read-open(-byte)メソッドの戻り値InputStreamを利用。)
よろしくお願いいたします。
ちなみに、WebDavを使う場合は、CurlでWebDavプロトコルを実装する必要がありそうです。
よろしくお願いいたします。
お世話になります。
HttpFormのadd-file(add-file-data)メソッドで実現できますか。
もしできれば、教えていただきますと幸いです。
よろしくお願いします。
ちょっと無理そうですね。WebDAVのプロトコルには、HttpRequestMethod.putが必要ですが、それが、http-read-openやHttpFormなどで実装されて無く、今後の機能拡張に期待したいところでしょうね。。。
HttpRequestMethod.putはHttpFormで対応してないですが、http-read-openなどで実装されているそうです。hokadaさんが言ったようにサーバサイドを介入せずにやりたければ、webDAVのプロトコルを実装する必要があるようですね。
大変失礼しました。
(02-29-2012, 06:04 PM)heavybugtracker Wrote: [ -> ]ちょっと無理そうですね。WebDAVのプロトコルには、HttpRequestMethod.putが必要ですが、それが、http-read-openやHttpFormなどで実装されて無く、今後の機能拡張に期待したいところでしょうね。。。
ご回答をありがとうございます。
「ネットワークドライブの割り当て」を利用して、HTTPのURLをローカルドライブに変更して、
{copy from:Url, to:Url, error-if-exists?:bool = true, recurse?:bool = false}(プロシージャ)
を使って、ローカルのファイルコピーようにHTTPサーバーにファイルコピーできますか。