2

C# アプリケーションのユーザーが、特定の詳細を提供した場合に、Web サイトからファイルをダウンロードできるようにしたいと考えています。

次を使用して、c# でファイルをダウンロードできます。

WebClient webClient = new WebClient();
webClient.DownloadFile("http://www.example.com/download.php", "file.txt");

また、webClient.UploadValues メソッドを使用して値をアップロードできますが、それらを組み合わせる方法がわかりません。つまり、ファイルと投稿データを同時にダウンロードすることです。

download.php ファイルには以下が含まれます。

$file = 'file.png';
if ((file_exists($file)) and ($_POST["ID"] == 'abc') ) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
else
header('HTTP/1.0 404 Not Found');
}
?>

C# からデータを投稿してからファイルをダウンロードするにはどうすればよいですか?

4

1 に答える 1

3

データを設定Content-Typeして渡す必要があります。

 WebClient client = new WebClient();
 client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
 byte []result=client.UploadData("http://www.example.com/download.php",
                                 "POST",
                                  System.Text.Encoding.UTF8.GetBytes("ID=abc"));
 //save the byte array `result` into disk file.
于 2012-09-01T08:50:41.813 に答える