Bagikan melalui


UploadOperation Kelas

Definisi

Melakukan operasi unggahan asinkron. Untuk gambaran umum kemampuan Transfer Latar Belakang, lihat Mentransfer data di latar belakang. Unduh sampel transfer Latar Belakang untuk contoh kode.

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
Warisan
Object Platform::Object IInspectable UploadOperation
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
Kemampuan aplikasi
internetClient internetClientServer privateNetworkClientServer

Contoh

Contoh berikut menunjukkan cara mengonfigurasi dan memulai operasi unggahan dasar.

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);
    }
}

Keterangan

Setelah penghentian aplikasi, aplikasi harus menghitung semua instans UploadOperation yang ada pada start-up berikutnya menggunakan GetCurrentUploadsAsync. Saat aplikasi UWP yang menggunakan Transfer Latar Belakang dihentikan, unggahan yang tidak lengkap akan bertahan di latar belakang. Jika aplikasi dimulai ulang setelah penghentian dan operasi yang tidak lengkap ini tidak dijumlahkan dan diperkenalkan kembali ke sesi saat ini, mereka akan kedaluarsa dan terus menempati sumber daya perangkat. Pertimbangan waktu habis

  • 1.) Saat membuat koneksi baru untuk pengunggahan melalui TCP/SSL, upaya koneksi dibatalkan jika tidak dibuat dalam waktu lima menit.
  • 2.) Setelah koneksi dibuat, pesan permintaan HTTP yang belum menerima respons dalam waktu dua menit dibatalkan. Dengan asumsi ada konektivitas Internet, Transfer Latar Belakang akan mencoba kembali unggahan hingga tiga kali. Jika konektivitas Internet tidak terdeteksi, upaya tambahan tidak akan dilakukan sampai.

Panduan Penelusuran Kesalahan

Menghentikan sesi penelusuran kesalahan di Microsoft Visual Studio sebanding dengan menutup aplikasi Anda; Unggahan PUT dijeda dan unggahan POST dibatalkan. Bahkan saat penelusuran kesalahan, aplikasi Anda harus menghitung lalu menjeda, memulai ulang, atau membatalkan unggahan yang bertahan.

Namun, jika pembaruan proyek Microsoft Visual Studio, seperti perubahan pada manifes aplikasi, mengharuskan aplikasi dihapus instalannya dan disebarkan ulang untuk penelusuran kesalahan, GetCurrentUploadsAsync tidak dapat menghitung operasi persisten yang dibuat menggunakan penyebaran aplikasi sebelumnya.

Riwayat versi

Versi Windows Versi SDK Nilai ditambahkan
1803 17134 MakeCurrentInTransferGroup
2004 19041 RemoveRequestHeader
2004 19041 SetRequestHeader

Properti

CostPolicy

Mendapatkan dan menetapkan kebijakan biaya untuk unggahan.

Group

Catatan

Grup dapat diubah atau tidak tersedia untuk rilis setelah Windows 8.1. Sebagai gantinya, gunakan TransferGroup.

Mendapatkan nilai string yang menunjukkan grup tempat unggahan berada.

Guid

Ini adalah pengidentifikasi unik untuk operasi unggahan tertentu. GUID yang terkait dengan operasi pengunggahan tidak akan berubah selama durasi unggahan.

Method

Mendapatkan metode yang digunakan untuk unggahan.

Priority

Mendapatkan atau mengatur prioritas transfer operasi pengunggahan ini ketika berada dalam BackgroundTransferGroup. Nilai yang mungkin ditentukan oleh BackgroundTransferPriority.

Progress

Mendapatkan kemajuan operasi pengunggahan saat ini.

RequestedUri

Mendapatkan URI untuk diunggah.

SourceFile

Menentukan IStorageFile untuk diunggah.

TransferGroup

Mendapatkan grup tempat operasi unggahan ini berada.

Metode

AttachAsync()

Mengembalikan operasi asinkron yang dapat digunakan untuk memantau kemajuan dan penyelesaian unggahan yang dilampirkan. Memanggil metode ini memungkinkan aplikasi untuk melampirkan operasi pengunggahan yang dimulai di instans aplikasi sebelumnya.

GetResponseInformation()

Mendapatkan informasi respons.

GetResultStreamAt(UInt64)

Mendapatkan respons yang diunggah sebagian di lokasi yang ditentukan.

MakeCurrentInTransferGroup()

Memprioritaskan operasi transfer unggahan (dan transfer apa pun yang mengikutinya dalam grup transfer yang sama). Memanggil metode ini pada transfer yang bukan milik grup transfer tidak berpengaruh.

RemoveRequestHeader(String)

Digunakan untuk menghapus header permintaan HTTP.

SetRequestHeader(String, String)

Digunakan untuk mengatur header permintaan HTTP.

StartAsync()

Memulai operasi unggahan asinkron.

Berlaku untuk

Lihat juga