UploadOperation Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Effectue une opération de chargement asynchrone. Pour obtenir une vue d’ensemble des fonctionnalités de transfert en arrière-plan, consultez Transfert de données en arrière-plan. Téléchargez l’exemple de transfert en arrière-plan pour obtenir un exemple de code.
public ref class UploadOperation sealed : IBackgroundTransferOperationPriority
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class UploadOperation final : IBackgroundTransferOperationPriority
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class UploadOperation : IBackgroundTransferOperationPriority
Public NotInheritable Class UploadOperation
Implements IBackgroundTransferOperationPriority
- Héritage
- Attributs
- Implémente
Configuration requise pour Windows
Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
Fonctionnalités de l’application |
internetClient
internetClientServer
privateNetworkClientServer
|
Exemples
L’exemple suivant montre comment configurer et commencer une opération de chargement de base.
using Windows.Foundation;
using Windows.Networking.BackgroundTransfer;
using Windows.Storage.Pickers;
using Windows.Storage;
private async void StartUpload_Click(object sender, RoutedEventArgs e)
{
try
{
Uri uri = new Uri(serverAddressField.Text.Trim());
FileOpenPicker picker = new FileOpenPicker();
picker.FileTypeFilter.Add("*");
StorageFile file = await picker.PickSingleFileAsync();
BackgroundUploader uploader = new BackgroundUploader();
uploader.SetRequestHeader("Filename", file.Name);
UploadOperation upload = uploader.CreateUpload(uri, file);
// Attach progress and completion handlers.
HandleUploadAsync(upload, true);
}
catch (Exception ex)
{
LogException("Upload Error", ex);
}
}
Remarques
Après l’arrêt de l’application, une application doit énumérer toutes les instances UploadOperation existantes au prochain démarrage à l’aide de GetCurrentUploadsAsync. Lorsqu’une application UWP utilisant le transfert en arrière-plan est terminée, les chargements incomplets sont conservés en arrière-plan. Si l’application est redémarrée après l’arrêt et que ces opérations incomplètes ne sont pas énumérées et réinsérées dans la session active, elles sont obsolètes et continuent d’occuper les ressources de l’appareil. Considérations relatives au délai d’expiration
- 1.) Lors de l’établissement d’une nouvelle connexion pour un chargement via TCP/SSL, la tentative de connexion est abandonnée si elle n’est pas établie dans les cinq minutes.
- 2.) Une fois la connexion établie, un message de requête HTTP qui n’a pas reçu de réponse dans les deux minutes est abandonné. En supposant qu’il existe une connectivité Internet, le transfert en arrière-plan effectue une nouvelle tentative de chargement jusqu’à trois fois. Si la connectivité Internet n’est pas détectée, aucune tentative supplémentaire n’est effectuée tant qu’elle ne l’est pas.
Aide sur le débogage
L’arrêt d’une session de débogage dans Microsoft Visual Studio est comparable à la fermeture de votre application ; Les chargements PUT sont suspendus et les chargements POST sont abandonnés. Même pendant le débogage, votre application doit énumérer, puis suspendre, redémarrer ou annuler les chargements persistants.
Toutefois, si les mises à jour du projet Microsoft Visual Studio, comme les modifications apportées au manifeste de l’application, nécessitent que l’application soit désinstallée et redéployée pour le débogage, GetCurrentUploadsAsync ne peut pas énumérer les opérations persistantes créées à l’aide du déploiement d’application précédent.
Historique des versions
Version de Windows | Version du SDK | Valeur ajoutée |
---|---|---|
1803 | 17134 | MakeCurrentInTransferGroup |
2004 | 19041 | RemoveRequestHeader |
2004 | 19041 | SetRequestHeader |
Propriétés
CostPolicy |
Obtient et définit la stratégie de coût pour le chargement. |
Group |
Notes Le groupe peut être modifié ou indisponible pour les versions après Windows 8.1. Utilisez plutôt TransferGroup. Obtient une valeur de chaîne indiquant le groupe auquel appartient le chargement. |
Guid |
Il s’agit d’un identificateur unique pour une opération de chargement spécifique. Un GUID associé à une opération de chargement ne change pas pendant la durée du chargement. |
Method |
Obtient la méthode à utiliser pour le chargement. |
Priority |
Obtient ou définit la priorité de transfert de cette opération de chargement dans un BackgroundTransferGroup. Les valeurs possibles sont définies par BackgroundTransferPriority. |
Progress |
Obtient la progression actuelle de l’opération de chargement. |
RequestedUri |
Obtient l’URI à partir duquel charger. |
SourceFile |
Spécifie le fichier IStorageFile à charger. |
TransferGroup |
Obtient le groupe auquel appartient cette opération de chargement. |
Méthodes
AttachAsync() |
Retourne une opération asynchrone qui peut être utilisée pour surveiller la progression et l’achèvement du chargement attaché. L’appel de cette méthode permet à une application d’attacher des opérations de chargement qui ont été démarrées dans un instance d’application précédent. |
GetResponseInformation() |
Obtient les informations de réponse. |
GetResultStreamAt(UInt64) |
Obtient la réponse partiellement chargée à l’emplacement spécifié. |
MakeCurrentInTransferGroup() |
Hiérarchise l’opération de transfert de chargement (et tous les transferts qui la suivent dans le même groupe de transfert). L’appel de cette méthode sur un transfert qui n’appartient pas à un groupe de transfert n’a aucun effet. |
RemoveRequestHeader(String) |
Utilisé pour supprimer un en-tête de requête HTTP. |
SetRequestHeader(String, String) |
Utilisé pour définir un en-tête de requête HTTP. |
StartAsync() |
Démarre une opération de chargement asynchrone. |