Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected void UploadImage(string filepath)
- {
- var req = (HttpWebRequest)WebRequest.Create("http://api.imgur.com/2/upload");
- var bound = "-------------" + DateTime.Now.Ticks.ToString();
- var tmplField = "--" + bound + "\r\nContent-Disposition: form-data; name='{0}'\r\n\r\n{1}\r\n";
- var tmplFile = "--" + bound + "\r\nContent-Disposition: form-data; name='{0}'; filename='{1}'\r\nContent-Type={2}\r\n\r\n";
- req.Method = "POST";
- req.ContentType = "multipart/form-data; boundary=" + bound;
- using (var reqStream = req.GetRequestStream())
- {
- var reqWriter = new BinaryWriter(reqStream);
- reqWriter.Write(string.Format(tmplField, "key", "c06f4d0cdf6f2cc652635a08be34973d"));
- reqWriter.Write(string.Format(tmplField, "type", "file"));
- reqWriter.Write(string.Format(tmplFile, "image", Path.GetFileName(filepath), "image/" + Path.GetExtension(filepath).Substring(1)));
- reqWriter.Write(File.ReadAllBytes(filepath));
- reqWriter.Write("\r\n--" + bound + "--");
- reqWriter.Flush();
- }
- try
- {
- var res = req.GetResponse();
- using (var resStream = res.GetResponseStream())
- {
- XDocument doc = XDocument.Load(resStream);
- var link = from imgurLink in doc.Descendants("imgur_page")
- from directLink in doc.Descendants("original")
- select new UploadedImage
- {
- Link = imgurLink.Value,
- DirectLink = directLink.Value
- };
- _dispatcher.Invoke(new Action(() => UploadedImages.Add(link.FirstOrDefault())));
- }
- }
- catch (Exception e)
- {
- _dispatcher.Invoke(new Action(() => UploadedImages.Add(new UploadedImage { Error = e.Message })));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement