WSS WebServicesを使用したこのアップロード方法の他のすべてのバージョンと同様に、ちょっとしたコードがあります。 1つの大きな問題があります。一度私のドキュメントリストにファイルをアップロードし、コメント/説明を書くためにリスト項目を更新すると、そのファイルはそこに残されています。私が意味することは、このメソッドはアップロードしたファイルを上書きしないということです。外に誰もこの問題をまだ投稿していないようです。誰ですか?WebRequestを使用してSharePoint WSS 3.0にファイルをアップロードPUT
ストリームの代わりにバイト[]を使用する別のバージョンのメソッドがあります。同じ問題です。
注:ライブラリの[編集可能にする前にチェックアウトする]チェックボックスをオフにしました。 No luck tho .. docライブラリではバージョン管理が有効になっていますが、各バージョンごとにメジャーバージョンが作成されています。
private void UploadStream(string fullPath, Stream uploadStream)
{
WebRequest request = WebRequest.Create(fullPath);
request.Credentials = CredentialCache.DefaultCredentials; // User must have 'Contributor' access to the document library
request.Method = "PUT";
request.Headers.Add("Overwrite", "t");
byte[] buffer = new byte[4096];
using (Stream stream = request.GetRequestStream())
{
for (int i = uploadStream.Read(buffer, 0, buffer.Length); i > 0; i = uploadStream.Read(buffer, 0, buffer.Length))
{
stream.Write(buffer, 0, i);
}
}
WebResponse response = request.GetResponse(); // Upload the file
response.Close();
}
オリジナルクレジット:http://geek.hubkey.com/2007/10/upload-file-to-sharepoint-document.html
EDIT - 主要な発見..私は私のNUnitのテストプロジェクトからそれを呼び出したときに、それが正常に動作します。私のWCFアプリケーション(ログオンしたユーザーアカウントで実行しているnUnit、WCFアプリケーションは同じユーザーの下で実行している - 私のアカウント、SharePointでも有効なアクセス許可を持っています)から呼び出すと失敗するようです。
ナッツ。 「どこから始めたらいいの?」と、私は自分自身に夢中になります。
変更される可能性はありますが、わからないことがあります。私は効果なしでこのdocライブラリのバージョン管理をオフにしようとしました。また、他の項目フィールドを更新する2番目の部分を無効にしました。現在、SharePointでは何も起こりません。それは私の目で見たにもかかわらず、決して実行されなかったコードのようなものです。 – misteraidan