/// <summary>
        /// Pre-compiles the multipart data required for a given file.
        /// </summary>
        /// <param name="fileEntry">The provided file infos.</param>
        /// <param name="boundary">The multipart's boundary.</param>
        /// <returns>
        /// A description containing the file's stream and the part's header and footer.
        /// </returns>
        private MultiPartFileDescriptor BuildMultiPartFileDescriptor(KeyValuePair <string, Stream> fileEntry, string boundary)
        {
            MultiPartFileDescriptor result = new MultiPartFileDescriptor();

            result._Stream = fileEntry.Value;

            // Build header
            StringBuilder sb         = new StringBuilder();
            Stream        fileStream = fileEntry.Value;

            if (fileStream is FileStream)
            {
                FileStream fs = (FileStream)fileStream;
                sb.Append("Content-Disposition: form-data; name=\"" + fileEntry.Key + "\"; filename=\"" + Path.GetFileName(fs.Name) + "\"" + "\r\n");
            }
            else if (fileStream is MemoryStream)
            {
                sb.Append("Content-Disposition: form-data; name=\"" + fileEntry.Key + "\"; filename=\"Memory-Stream-Upload\"" + "\r\n");
            }
            sb.Append("Content-Type: application/octet-stream" + "\r\n");
            sb.Append("\r\n");
            result._Header = Encoding.UTF8.GetBytes(sb.ToString());

            result._Footer = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Pre-compiles the multipart data required for a given file.
        /// </summary>
        /// <param name="fileEntry">The provided file infos.</param>
        /// <param name="boundary">The multipart's boundary.</param>
        /// <returns>
        /// A description containing the file's stream and the part's header and footer.
        /// </returns>
        private MultiPartFileDescriptor BuildMultiPartFileDescriptor(KeyValuePair<string, FileStream> fileEntry, string boundary)
        {
            MultiPartFileDescriptor result = new MultiPartFileDescriptor();
            result._Stream = fileEntry.Value;

            // Build header
            StringBuilder sb = new StringBuilder();
            FileStream fileStream = fileEntry.Value;
            sb.Append("Content-Disposition: form-data; name=\"" + fileEntry.Key + "\"; filename=\"" + Path.GetFileName(fileStream.Name) + "\"" + "\r\n");
            sb.Append("Content-Type: application/octet-stream" + "\r\n");
            sb.Append("\r\n");
            result._Header = Encoding.UTF8.GetBytes(sb.ToString());

            result._Footer = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");

            return result;
        }