Sto cercando di utilizzare WebClient.UploadFile nel mio progetto per inviare file al server. WebClient.UploadFile accetta il nome del file uri come parametro ma vorrei passare il flusso del file invece del nome del file uri. È possibile con WebClient?WebClient.UploadFile passa il file di caricamento come stream
6
A
risposta
1
Dovresti essere in grado di utilizzare i metodi WebClient.OpenWrite
e OpenWriteAsync
per inviare uno stream al tuo server.
Se si utilizza la versione successiva, effettuare la sottoscrizione a OpenWriteCompleted
e utilizzare e.Result
come stream su CopyTo
.
0
Non è possibile, ma ciò che suggerisci è una buona idea. Vorrei andare a http://connect.microsoft.com e registrare una richiesta di funzionalità.
2
Ecco alcuni esempi che illustrano come scrivere flusso alla risorsa specificata utilizzando WebClient class:
Utilizzando WebClient.OpenWrite
:
using (var client = new WebClient())
{
var fileContent = System.IO.File.ReadAllBytes(fileName);
using (var postStream = client.OpenWrite(endpointUrl))
{
postStream.Write(fileContent, 0, fileContent.Length);
}
}
Utilizzando WebClient.OpenWriteAsync
:
using (var client = new WebClient())
{
client.OpenWriteCompleted += (sender, e) =>
{
var fileContent = System.IO.File.ReadAllBytes(fileName);
using (var postStream = e.Result)
{
postStream.Write(fileContent, 0, fileContent.Length);
}
};
client.OpenWriteAsync(new Uri(endpointUrl));
}
@Thomas Cosa hai fatto a finire fare? – user990635