[C#]ImageShack upload image class

Results 1 to 2 of 2
  1. #1
    Account Upgraded | Title Enabled! Intelext is offline
    MemberRank
    Mar 2007 Join Date
    EuropeLocation
    1,228Posts

    [C#]ImageShack upload image class

    Found many stuff in google, nothing worked for me so I edited it to make it work. Posting it because it's a part of one of my old sold projects that I want to delete but this class can be useful for me in the future and for you.

    PHP Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.IO;
    using System.Collections.Specialized;

    namespace 
    Classes
    {
        class 
    ImageshackUpload
        
    {
            public 
    string UploadFileToImageShack(object oFileName)
            {
                try
                {
                    
    string fileName oFileName as string;
                    
    string contentType null;
                    
    CookieContainer cookie = new CookieContainer();
                    
    NameValueCollection col = new NameValueCollection();
                    
    col["MAX_FILE_SIZE"] = "3145728";
                    
    col["refer"] = "";
                    
    col["brand"] = "";
                    
    col["optimage"] = "1";
                    
    col["rembar"] = "1";
                    
    col["submit"] = "host it!";
                    List<
    string= new List<string>();
                    switch (
    fileName.Substring(fileName.Length 33))
                    {
                        case 
    "jpg":
                            
    contentType "image/jpeg";
                            break;
                        case 
    "peg":
                            
    contentType "image/jpeg";
                            break;
                        case 
    "gif":
                            
    contentType "image/gif";
                            break;
                        case 
    "png":
                            
    contentType "image/png";
                            break;
                        case 
    "bmp":
                            
    contentType "image/bmp";
                            break;
                        case 
    "tif":
                            
    contentType "image/tiff";
                            break;
                        case 
    "iff":
                            
    contentType "image/tiff";
                            break;
                        default:
                            
    contentType "image/unknown";
                            break;
                    }

                    
    string resp;
                    
    col["optsize"] = "resample";
                    
    resp UploadFileEx(fileName,
                                                   
    "http://www.imageshack.us/index.php",
                                                   
    "fileupload",
                                                   
    contentType,
                                                   
    col,
                                                   
    cookie);

                    
    int StartText resp.IndexOf("[IMG]");
                    
    int EndText resp.IndexOf("[/IMG]");

                    
    string ImageLink resp.Substring(StartText 5EndText StartText 5);

                    
    ImageLink ImageLink.Replace(".th""");


                    return 
    ImageLink;


                }
                catch (
    Exception ex)
                {
                    return 
    ex.ToString();
                }
            }

            public static 
    string UploadFileEx(string uploadfilestring url,
               
    string fileFormNamestring contenttypeSystem.Collections.Specialized.NameValueCollection querystring,
               
    CookieContainer cookies)
            {
                if ((
    fileFormName == null) ||
                    (
    fileFormName.Length == 0))
                {
                    
    fileFormName "file";
                }

                if ((
    contenttype == null) ||
                    (
    contenttype.Length == 0))
                {
                    
    contenttype "application/octet-stream";
                }


                
    string postdata;
                
    postdata "?";
                if (
    querystring != null)
                {
                    foreach (
    string key in querystring.Keys)
                    {
                        
    postdata += key "=" querystring.Get(key) + "&";
                    }
                }
                
    Uri uri = new Uri(url postdata);


                
    string boundary "----------" DateTime.Now.Ticks.ToString("x");
                
    HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(uri);
                
    webrequest.CookieContainer cookies;
                
    webrequest.ContentType "multipart/form-data; boundary=" boundary;
                
    webrequest.Method "POST";

                
    StringBuilder sb = new StringBuilder();
                
    sb.Append("--");
                
    sb.Append(boundary);
                
    sb.Append("\r\n");
                
    sb.Append("Content-Disposition: form-data; name=\"");
                
    sb.Append(fileFormName);
                
    sb.Append("\"; filename=\"");
                
    sb.Append(Path.GetFileName(uploadfile));
                
    sb.Append("\"");
                
    sb.Append("\r\n");
                
    sb.Append("Content-Type: ");
                
    sb.Append(contenttype);
                
    sb.Append("\r\n");
                
    sb.Append("\r\n");

                
    string postHeader sb.ToString();
                
    byte[] postHeaderBytes Encoding.UTF8.GetBytes(postHeader);

                
    byte[] boundaryBytes =
                       
    Encoding.ASCII.GetBytes("\r\n--" boundary "\r\n");

                
    FileStream fileStream = new FileStream(uploadfile,
                                            
    FileMode.OpenFileAccess.Read);
                
    long length postHeaderBytes.Length fileStream.Length +
                                                       
    boundaryBytes.Length;
                
    webrequest.ContentLength length;

                
    Stream requestStream webrequest.GetRequestStream();

                
    requestStream.Write(postHeaderBytes0postHeaderBytes.Length);

                
    byte[] buffer = new Byte[checked((uint)Math.Min(40***
                                         (int)
    fileStream.Length))];
                
    int bytesRead 0;
                while ((
    bytesRead fileStream.Read(buffer0buffer.Length)) != 0)
                    
    requestStream.Write(buffer0bytesRead);

                
    requestStream.Write(boundaryBytes0boundaryBytes.Length);
                
    WebResponse responce webrequest.GetResponse();
                
    Stream s responce.GetResponseStream();
                
    StreamReader sr = new StreamReader(s);

                return 
    sr.ReadToEnd();
            }
        }



  2. #2
    Account Upgraded | Title Enabled! Hidden is offline
    MemberRank
    Apr 2008 Join Date
    .Location
    367Posts

    Re: [C#]ImageShack upload image class

    very nice piece of code, i will probably use it sometime in the future.



Advertisement