=> *(use 'clj-http.client)* nil => *(= (:body (clj-http.client/get "http://google.com/favicon.ico" {:as :steam})) (slurp "http://google.com/favicon.ico"))* true
or if you want to save it locally as a file(thanks Apage43): => *(with-open [bodystream (:body (clj-http.client/get " http://google.com/favicon.ico" {:as :stream}))] (clojure.java.io/copy bodystream (clojure.java.io/file"google_favicon.ico")) )* nil On Mon, Oct 15, 2012 at 12:29 PM, Andreas Liljeqvist <[email protected]>wrote: > Haven't got access to my tools, but couldn't you just slurp it? > > (slurp "http://somesite/picture.jpg") > > On Mon, Oct 15, 2012 at 11:08 AM, dennis zhuang <[email protected]>wrote: > >> I think you can use clj-http: >> https://github.com/dakrone/clj-http >> >> (client/get "http://site.com/favicon.ico" {:as :byte-array}) >> >> >> >> 2012/10/15 Yakovlev Roman <[email protected]> >> >>> Hi >>> I am pretty new to java world so as i found there is no simple way to >>> get image file from url like : http://example.com/image.jpg. >>> What i need just to get file from url and store it to db. >>> So we need to use buffer, stream and stuff to get file. I found this >>> code but i guess there is a way to get things simplier. >>> >>> (defn fetch-data [url] >>> (let [con (-> url java.net.URL. .openConnection) >>> fields (reduce (fn [h v] >>> (assoc h (.getKey v) (into [] (.getValue v)))) >>> {} (.getHeaderFields con)) >>> size (first (fields "Content-Length")) >>> in (java.io.BufferedInputStream. (.getInputStream con)) >>> out (java.io.BufferedOutputStream. >>> (java.io.FileOutputStream. "out.file")) ; *Here is our >>> file * >>> buffer (make-array Byte/TYPE 1024)] >>> >>> ; Not sure about that loop it's just prints size to repl if we don't >>> need that we can omit that part i guess >>> >>> (loop [g (.read in buffer) >>> r 0] >>> (if-not (= g -1) >>> (do >>> (println r "/" size) >>> (.write out buffer 0 g) >>> (recur (.read in buffer) (+ r g))))) >>> >>> (.close in) >>> (.close out) >>> (.disconnect con))) >>> >>> (fetch-data "http://google.com") >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to [email protected] >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> [email protected] >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >> >> >> >> >> -- >> 庄晓丹 >> Email: [email protected] [email protected] >> Site: http://fnil.net >> Twitter: @killme2008 >> >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to [email protected] >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
