Curl Global Community
独自アプレットでのファイルダウンロードダイアログについて - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: 独自アプレットでのファイルダウンロードダイアログについて (/showthread.php?tid=489)



独自アプレットでのファイルダウンロードダイアログについて - usami - 05-07-2012

サーバのファイルをダウンロードする際、保存先ダイアログを表示する方法については、
http://developers.curlap.com/faq/48-faq-specification/771-file-download-dialog.html
に方法が載っていますが、これはcurlアプレット(start.curl)での動作かと思われます。
ブラウザを介さない独自アプレット(start.dcurl)から同様に保存先ダイアログを表示させるためにはどのような方法を行えばよいでしょうか?



RE: 独自アプレットでのファイルダウンロードダイアログについて - fukuta - 05-07-2012

choose-file を style="save-as" で呼出す。で回答になってますでしょうか?


RE: 独自アプレットでのファイルダウンロードダイアログについて - usami - 05-08-2012

例えば、URLがhttp://curl.com/test.zip
というファイルをファイルダイアログを表示させてダウンロードしたい場合、
Code:
let ul:Url = {url "http://curl.com/test.zip"}
{{get-the-applet}.browse-url ul, target="_self"}
このように記述すると、ブラウザが立ち上がり、ブラウザの機能によって保存先を指定できるのですが、
ブラウザを起動せず、独自アプレットのみでこれをchoose-fileによって実現する方法はあるのでしょうか?






RE: 独自アプレットでのファイルダウンロードダイアログについて - usami - 05-08-2012

ありがとうございます。choose-fileを使って自己解決しました。
以下のようにするとできそうです。

Code:
{try
    def dlString:String = "http://curl.com/test.zip"
    let in-url:Url = {abs-url dlString}
    let out-file:#Url =
        {choose-file
            default-location={url {get-host-working-directory-url} & "/" & in-url.filename},
            style=FileDialogStyle.save-as,
            title="名前をつけて保存"
        }
    {if-non-null out-file then
        {copy in-url, {non-null out-file}, error-if-exists? = false, recurse? = false}
    }
catch e:Exception do
    {popup-message
        {VBox
            halign = "center",
            "ファイルのダウンロードに失敗しました。",
            e.message
        }
    }
}