Lire en anglais

Partager via


UploadOperation Classe

Définition

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
Object Platform::Object IInspectable UploadOperation
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.

S’applique à

Voir aussi