Advertisement
Guest User

Untitled

a guest
Oct 14th, 2010
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.99 KB | None | 0 0
  1.     protected void UploadImage(string filepath)
  2.     {
  3.         var req = (HttpWebRequest)WebRequest.Create("http://api.imgur.com/2/upload");
  4.         var bound = "-------------" + DateTime.Now.Ticks.ToString();
  5.         var tmplField = "--" + bound + "\r\nContent-Disposition: form-data; name='{0}'\r\n\r\n{1}\r\n";
  6.         var tmplFile = "--" + bound + "\r\nContent-Disposition: form-data; name='{0}'; filename='{1}'\r\nContent-Type={2}\r\n\r\n";
  7.         req.Method = "POST";
  8.         req.ContentType = "multipart/form-data; boundary=" + bound;
  9.  
  10.         using (var reqStream = req.GetRequestStream())
  11.         {
  12.             var reqWriter = new BinaryWriter(reqStream);
  13.  
  14.             reqWriter.Write(string.Format(tmplField, "key", "c06f4d0cdf6f2cc652635a08be34973d"));
  15.             reqWriter.Write(string.Format(tmplField, "type", "file"));
  16.             reqWriter.Write(string.Format(tmplFile, "image", Path.GetFileName(filepath), "image/" + Path.GetExtension(filepath).Substring(1)));
  17.             reqWriter.Write(File.ReadAllBytes(filepath));
  18.             reqWriter.Write("\r\n--" + bound + "--");
  19.             reqWriter.Flush();
  20.         }
  21.  
  22.         try
  23.         {
  24.             var res = req.GetResponse();
  25.             using (var resStream = res.GetResponseStream())
  26.             {
  27.                 XDocument doc = XDocument.Load(resStream);
  28.                 var link = from imgurLink in doc.Descendants("imgur_page")
  29.                             from directLink in doc.Descendants("original")
  30.                             select new UploadedImage
  31.                             {
  32.                                 Link = imgurLink.Value,
  33.                                 DirectLink = directLink.Value
  34.                             };
  35.                 _dispatcher.Invoke(new Action(() => UploadedImages.Add(link.FirstOrDefault())));
  36.             }
  37.         }
  38.         catch (Exception e)
  39.         {
  40.             _dispatcher.Invoke(new Action(() => UploadedImages.Add(new UploadedImage { Error = e.Message })));
  41.         }
  42.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement