我想上传一个文件(录像档案)到服务器通过 BackgroundTransferService
.
我的问题是,我还想发送2个参数和文件(POST请求).
那么,使用BackgroundTransferService
API时是否可以发送参数和文件上传..?
代码BackgroundTransferService
:
BackgroundTransferRequest req = new BackgroundTransferRequest(new Uri("ServerURL", UriKind.Absolute));
req.Method = "POST";
req.TransferPreferences = TransferPreferences.AllowCellularAndBattery;
string uploadLocationPath = "/Shared/Transfers/myVideoFile.mp4";
string downloadLocationPath = "/Shared/Transfers/response.txt";
req.UploadLocation = new Uri(uploadLocationPath, UriKind.Relative);
req.DownloadLocation = new Uri(downloadLocationPath, UriKind.Relative);
req.TransferProgressChanged += req_TransferProgressChanged;
req.TransferStatusChanged += req_TransferStatusChanged;
try
{
BackgroundTransferService.Add(req);
}
catch (Exception ex)
{
MessageBox.Show("Unable to add video to upload queue.\nPlease try again later.", App.appName, MessageBoxButton.OK);
}
Run Code Online (Sandbox Code Playgroud)
请询问是否有人想要更多信息并且无法理解我的问题.
我想快速回复.是或否......如果是,则如何......?
c# file-upload windows-phone background-transfer windows-phone-8
我有一个带有后台传输的Windows应用商店应用程序 来下载内容,它一直运行到现在.但是,一些客户报告说,在他们将PC更新为Creators Update(1703)之后,下载停止工作会产生错误HRESULT: 0x80072EE4
(由我的应用程序从异常中翻译).
有类似的报告:HRESULT 0x80072EE4在使用BackgroundDownloader但在我的情况下,它发生在Windows Update 1703之后.奇怪的是,这个问题不会发生在我的开发者PC上,其中已经安装了相同的更新.
有没有人对问题的根源有任何线索或找到任何解决方法?
我正在使用BackgroundTransferRequest
WP8应用程序将文件上传到我的服务器.服务器接收文件并发送回复,其中包含有关上传文件的一些有用信息.我怎样才能获得这些信息?
似乎没有API(羞耻地).可能,我错过了一些东西.
请注意,request.BytesReceived
属性返回99个字节,看起来像请求知道从服务器返回一些数据,但我不知道如何获取它.
我有一些文件需要在app启动时下载(首次运行).我在Windows 8中使用Background Downloader.这就是我使用它的方式:
BackgroundDownloader downloader = new BackgroundDownloader();
List<DownloadOperation> operations = new List<DownloadOperation>();
foreach (FileInfo info in infoFiles)
{
Windows.Storage.ApplicationData.Current.LocalFolder;
foreach (string folder in info.Folders)
{
currentFolder = await currentFolder.CreateFolderAsync(folder, CreationCollisionOption.OpenIfExists);
}
//folder hierarchy created, save the file
StorageFile file = await currentFolder.CreateFileAsync(info.FileName, CreationCollisionOption.ReplaceExisting);
DownloadOperation op = downloader.CreateDownload(new Uri(info.Url), file);
activeDownloads.Add(op);
operations.Add(op);
}
foreach (DownloadOperation download in operations)
{
//start downloads
await HandleDownloadAsync(download, true);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用时,BackgroundDownloader.GetCurrentDownloadsAsync();
我只发现了一个后台下载.所以我删除了上面的await运算符,让它们异步启动.
但是我需要知道所有文件何时完成,所以我可以设置进度条.
我需要一种方法来下载多个文件,发现所有文件BackgroundDownloader.GetCurrentDownloadsAsync();
并知道所有下载完成的时间.
private async Task HandleDownloadAsync(DownloadOperation download, bool start)
{ …
Run Code Online (Sandbox Code Playgroud) 我正在使用BackgroundUploader将图像/视频从CameraRoll上传到存储服务.这是Windows Phone 8.1上的WinRT应用程序
这很有效,直到有大量文件要上传.我期待有关于电池和CPU使用的问题,所以我正在检查所有UploadOperations的BackgroungTransferStatus,并且如果我们遇到PausedSystemPolicy状态则打算向用户显示消息.如果手机决定暂停上传,这是预期状态.
我的问题是,虽然上传肯定会暂停(它不发送http帖子),但状态继续说"正在运行".此外,取消上传操作无效.它仍然继续坐在那里说"正在运行"没有发送字节并且没有收到响应.最终,它确实恢复上传,但我们似乎很快达到了问题的任何限制,我们再次暂停.我理解限制的必要性,这是我关心的用户体验.
为什么暂停的上传仍处于"正在运行"状态?有没有人经历过类似的事?