1

Sharepointにファイルをアップロードしようとしています。OK承認は正常に機能しますが、最終的には。ではなくステータスになりCREATEDます。最終的に、ファイルは作成されません。他の人に役立つと思われるアプローチを使用したので、なぜそれが起こっているのかわかりません(苦情はありません)。これが私が使用しているコードです:

Public Sub Create()
    Dim szURL1 = "http://host.domain.com/p/projects/4/Proposal/cze.txt"

    Dim szContent = String.Format("Date/Time: {0} {1}", DateTime.Now.ToShortDateString(), DateTime.Now.ToLongTimeString())

    'Define username and password strings.
    Dim domain = "DOMAIN_NAME"
    Dim szUsername = "USER_NAME"
    Dim szPassword = "PASSWORD"

    Dim httpPutRequest As HttpWebRequest = DirectCast(WebRequest.Create(szURL1), HttpWebRequest)
    httpPutRequest.Credentials = New NetworkCredential(szUsername, szPassword, domain)
    httpPutRequest.PreAuthenticate = True
    httpPutRequest.Method = "PUT"
    httpPutRequest.Headers.Add("Overwrite", "T")
    httpPutRequest.ContentLength = szContent.Length

    'Optional, but allows for larger files.
    httpPutRequest.SendChunked = True

    Dim requestStream = httpPutRequest.GetRequestStream()

    'Write the string to the destination as a text file.
    requestStream.Write(System.Text.Encoding.UTF8.GetBytes(DirectCast(szContent, String)), 0, szContent.Length)

    'Close the request stream.
    requestStream.Close()

    'Retrieve the response.
    Dim httpPutResponse As HttpWebResponse = DirectCast(httpPutRequest.GetResponse(), HttpWebResponse)
    Debug.WriteLine("PUT Response #1: {0}", httpPutResponse.StatusDescription)
End Sub

これにより、次PUT Response #1: OKのようになります。PUT Response #1: CREATED

http://blogs.iis.net/robert_mcmurray/archive/2010/02/09/sending-webdav-requests-in-net.aspxからコードを取得し、VBに翻訳しましたが、その翻訳はないと思います。問題です。

何か案は?

編集:元のC#コードを確認しましたが、結果は同じです。何が問題なのですか?

4

2 に答える 2

2

別の言語でこれを扱ったばかりなので、 SendChunkedを無効にすることをお勧めします。この 2 つを混在させることは想定されておらず、SharePoint 2010 は不明なサイズのアップロードを好まないようです。

于 2012-10-01T15:38:01.717 に答える
0

上記が機能しない理由がわかりません。私はこの簡単なコードを書きましたが、うまくいきます:

var client = new WebClient();
client.Credentials = new NetworkCredential(username, password, domain);
client.UploadData("http://host.domain.com/p/projects/4/Proposal/cze.txt", "PUT", Encoding.UTF8.GetBytes(DateTime.Now.ToString()));

誰かが元の質問に答えることができれば、私はそれに賛成して回答として受け入れます。

于 2012-06-12T09:06:52.337 に答える