Я пытаюсь загрузить файл изображения, пока он выбран в PhotoChooser в Windows Phone 7, но он не загружается. Я использую следующий код.
void UploadFile(string fileName, Stream data)
{
UriBuilder ub = new UriBuilder("http://webservice.php?uid=" + Constants.UserId);
WebClient webClient = new WebClient();
webClient.Headers["Content-Type"] = "multipart/form-data; boundary=7794b1e4-2134-41a3-b8ab-ff5aff9710fd";
webClient.OpenWriteCompleted += (sender, e) =>
{
System.Diagnostics.Debug.WriteLine("START");
PushData(data, e.Result);
System.Diagnostics.Debug.WriteLine("END");
e.Result.Close();
data.Close();
};
webClient.WriteStreamClosed += (sender, e) =>
{
System.Diagnostics.Debug.WriteLine("WriteStreamClosed");
};
webClient.OpenWriteAsync(ub.Uri);
}
private void PushData(Stream input, Stream output)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
Byte[] bytes = encoding.GetBytes("--7794b1e4-2134-41a3-b8ab-ff5aff9710fd\r\n"
+ "Content-Disposition: form-data; name=\"uploadFile\"; filename=\"test.jpg\"\r\n"
+ "Content-Type:Image/jpeg\r\n\r\n");
output.Write(bytes, 0, bytes.Length);
int dd = 0;
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) != 0)
{
output.Write(buffer, 0, bytesRead);
dd += bytesRead;
System.Diagnostics.Debug.WriteLine("WRITE: " + dd);
}
bytes = encoding.GetBytes("\r\n--7794b1e4-2134-41a3-b8ab-ff5aff9710fd--\r\n");
output.Write(bytes, 0, bytes.Length);
}
Может кто-нибудь сказать мне, что не так в коде выше?