Как Вы копируете файл в SharePoint с помощью WebService?

Шаблон:

<div *ngFor="let item of items; let i = index";>
<a (click)="sendInvoice(i)">Send</a>
</div>

TS:

sendInvoice(i){
console.log(i);
}
7
задан Keith Sirmons 24 April 2009 в 21:16
поделиться

6 ответов

Вот что сейчас работает:

WebRequest request = WebRequest.Create(“http://webserver/site/Doclib/UploadedDocument.xml”);
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "PUT";
byte[] buffer = new byte[1024];
using (Stream stream = request.GetRequestStream())
{
    using (MemoryStream memoryStream = new MemoryStream())
    {
        dataFile.MMRXmlData.Save(memoryStream);
        memoryStream.Seek(0, SeekOrigin.Begin);
        for (int i = memoryStream.Read(buffer, 0, buffer.Length); i > 0;
            i = memoryStream.Read(buffer, 0, buffer.Length))
        {
            stream.Write(buffer, 0, i);
        }
    }
}

WebResponse response = request.GetResponse();
response.Close();

Итак ... У кого-нибудь есть мнение, что этот метод «PUT» лучше в среде SharePoint, чем использование встроенного веб-сервиса?

Прямо сейчас я должен был бы сказать, что метод «PUT» лучше, так как он работает, и я не мог заставить WebService работать.

Кейт

1
ответ дан 7 December 2019 в 03:21
поделиться

с вашим кодом все в порядке, просто используйте целевой URL вместо пустой строки. См. Ниже:

byte[] xmlByteArray;
using (MemoryStream memoryStream = new MemoryStream())
{
    xmlDocument.Save(memoryStream);
    xmlBytes = memoryStream.ToArray();
}

string destinationUrl = “http://webserver/site/Doclib/UploadedDocument.xml”
string[] destinationUrlArray = new string[] { destinationUrl };

FieldInformation fieldInfo = new FieldInformation();
FieldInformation[] fields = { fieldInfo };


CopyResult[] resultsArray;

using (Copy copyService = new Copy())
{
    copyService.Credentials = CredentialCache.DefaultCredentials;
    copyService.Url = "http://webserver/site/_vti_bin/copy.asmx";

    copyService.Timeout = 600000;

    uint documentId = copyService.CopyIntoItems(destinationUrl , destinationUrlArray, fields, xmlByteArray, out resultsArray);
}
1
ответ дан 7 December 2019 в 03:21
поделиться

Here's some code I wrote awhile (i apologize, i've had to piece meal it together, but hopefully you get the point of it)

    // Create a request using a URL that can receive a post. 
WebRequest request = WebRequest.Create("http://sharepointsite/somefile.txt");

// Set the Method property of the request to POST.
request.Method = "PUT"

Stream dataStream;

// Set the ContentType property of the WebRequest.
request.ContentType = "multipart/form-data; charset=ISO-8859-1";

byte[] byteArray = File.ReadAllBytes(@"c:\somefile.txt");

// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;

// Get the request stream.
dataStream = request.GetRequestStream();

// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);

// Close the Stream object.
dataStream.Close();

// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
HttpStatusCode statCode = response.StatusCode;

// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();

// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
0
ответ дан 7 December 2019 в 03:21
поделиться

Я не понимаю, почему вы используете Copy, а не UpdateListItems . Возможно, UpdateListItems будет лучше соответствовать?

-1
ответ дан 7 December 2019 в 03:21
поделиться

Я знаю, что это старая ветка, но она продолжала появляться, поскольку я искал решение той же проблемы.

Посмотрите ответ Стива Каррана в этой теме http://social.msdn.microsoft.com/Forums/en-SG/sharepointdevelopment/thread/833e38a8-f13c-490d-8ba7-b889b6b25e38 . Похоже, что в основном запрос не выполняется, потому что целевой URL-адрес не может быть разрешен.

(Ограничения нового пользователя stackflow - не может публиковать более одной ссылки. Остальное см. В моем комментарии)

pat

6
ответ дан 7 December 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: