UWP C # BackgoundUploader не работает

Итак, я пытаюсь загрузить файл на свой веб-сервер, используя C #, UWP и пространство имен фонового загрузчика. Вот мой код C #:

private async Task JamCloud_Upload_MP3()
{
try
{

Uri uri = new Uri("http://www.example.com/upload/upload.php");
var file = storagefile.file;

BackgroundUploader uploader = new BackgroundUploader();
uploader.SetRequestHeader("userfile", file.Name);

UploadOperation upload = uploader.CreateUpload(uri, file);

// Attach progress and completion handlers.
await upload.StartAsync();
//HandleUploadAsync(upload, true);
}
catch (Exception ex)
{
f.MessageBox("Upload Error: "+ ex);
}
}

Таким образом, по умолчанию для upload.method используется POST. Так что я не уверен, как поймать этот POST на сервере, поэтому я написал файл PHP, как будто я ловил сообщение из сообщения в формате HTML.

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){

$uploaddir = '/home/example/public_html/upload/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
}

?>

Кажется, он не работает …. кто-нибудь может мне помочь?

0

Решение

Догадаться.

  1. Изменен upload.method = «PUT»; // в коде C # по умолчанию было POST

  2. Измените скрипт PHP на:

    <?php
    if($_SERVER['REQUEST_METHOD'] == 'PUT'){
    /* PUT data comes in on the stdin stream */
    $putdata = fopen("php://input", "r");
    
    /* Open a file for writing */
    $fp = fopen($_SERVER['HTTP_USERFILE'], "w");
    
    /* Read the data 1 KB at a time
    and write to the file */
    while ($data = fread($putdata, 1024))
    fwrite($fp, $data);
    
    /* Close the streams */
    fclose($fp);
    fclose($putdata);
    }
    ?>
    
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector