0

C#クライアントアプリとNusoapWebサービスでファイルをアップロードしたい。どうすればこれを行うことができますか?データベースへの挿入にはNusoapWebサービスを使用していますが、ファイルのアップロードにはわかりません。私を助けてください。ありがとう。

4

1 に答える 1

2

私はNuSOAPの経験がないので、NuSOAPを使用せずに、PHPを実行しているサーバーにファイルをアップロードするという私の知識を最大限に活用して回答します。

次のコードはPOST、特定のファイルの内容を、標準のHTMLフォームを介して送信されたかのようにPHPページに送信します。

public void UploadFile(string path) {
    WebClient wc = new WebClient();
    wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    Int64 numBytes = new FileInfo(path).Length;
    FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(fs);
    Byte[] data = br.ReadBytes(Convert.ToInt32(numBytes));
    br.Close();
    fs.Close();
    wc.UploadData("http://127.0.0.1/upload.php", "POST", data);
}

編集:これは私がしばらく前にこれに使用したPHPです。これは潜在的に安全ではなく、新しいファイルがアップロードされるたびに常に同じファイルを上書きします。セキュリティのためにいくつかのファイルチェックとともに、これに動的性を加えることを試みることができます...しかし、(Webフォームからの)標準的なアップロードを目的とした変更されたPHPファイルを使用することもできるはずです。

<?php
    $fp = fopen('snap.jpg', 'wb');
    fwrite($fp, file_get_contents('php://input'));
    fclose($fp);
?>
于 2012-06-10T23:47:35.323 に答える