2017-01-10 5 views
0

だから、C#、UWP、およびバックグラウンドアップローダーの名前空間を使用してWebサーバーにファイルをアップロードしようとしています。私のC#コードは次のとおりです。UWP C#BackgoundUploaderが動作しない

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です。だから私はPHPのファイルを書いたので、私はHTMLフォームの投稿から投稿をキャッチしていたので、サーバー上でこのPOSTをキャッチする方法はわかりません。

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

?> 

誰かが私を助けることができますか?

答えて

1

  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); 
    } 
    ?> 
    
+0

はこれで長い時間が苦しんでいました。よく働く!ありがとう! – DubstepsantaHD

関連する問題