if (fupChooseClip.HasFile)
{
upload = (HttpWebRequest)WebRequest.Create(strUploadUrl);
upload.Method = "POST";
upload.ContentType = "multipart/form-data; boundary=" + boundary;
upload.Timeout = 60000;
postString += appendMultiPartFormField("sid", sid, boundary);
postString += appendMultiPartFormField("tid", tid.ToString(), boundary);
postString += appendMultiPartFormField("user", userid.ToString(), boundary);
postString += appendMultiPartFormField("titel", txtClipTitle.Text, boundary);
postString += appendMultiPartFormField("info", txtClipDescription.Text, boundary);
postString += appendMultiPartFormField("musik", "0", boundary);
postString += appendMultiPartFormFile("filedata", fupChooseClip.FileName, boundary);
byte[] formBytes = Encoding.UTF8.GetBytes(postString);
byte[] fileBytes = fupChooseClip.FileBytes;
byte[] trailBytes = Encoding.UTF8.GetBytes(boundary);
upload.ContentLength = formBytes.Length + fileBytes.Length + trailBytes.Length;
requestStream = upload.GetRequestStream();
requestStream.Write(formBytes, 0, formBytes.Length);
requestStream.Write(fileBytes, 0, fileBytes.Length);
requestStream.Write(trailBytes, 0, trailBytes.Length);
try
{
httpWebResponse = (HttpWebResponse)upload.GetResponse();
responseStream = httpWebResponse.GetResponseStream();
}
catch (WebException wex)
{
if (wex.Status == WebExceptionStatus.Timeout)
lblDebug.Text = "Timeout!";
else
lblDebug.Text = "fejl: " + wex.Message;
}
requestStream.Close();
private String appendMultiPartFormField(String fieldName, String fieldData, String boundary)
{
String strReturn = "";
strReturn += "--" + boundary + "\r\n";
strReturn += "Content-Disposition: form-data; name=\"" + fieldName + "\"" + "\r\n";
strReturn += "\r\n";
strReturn += fieldData + "\r\n";
return strReturn;
}
private String appendMultiPartFormFile(String fieldName, String fileName, String boundary)
{
String strReturn = "";
strReturn += "--" + boundary + "\r\n";
strReturn += "Content-Disposition: form-data; name=\"" + fieldName + "\"; ";
strReturn += "filename=\"" + fileName + "\"; ";
strReturn += "Content-Type: application/octet-stream" + "\r\n";
strReturn += "\r\n";
return strReturn;
}
private String makeBoundary()
{
String tmp = "--------";
Random randNum = new Random();
char[] characterArray = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();
for (int i = 0; i < 8; i++)
{
tmp += characterArray[(int)((characterArray.GetUpperBound(0) + 1) * randNum.NextDouble())];
}
return tmp;
}