Папка Me sh files в список sharepoint - PullRequest
0 голосов
/ 16 июня 2020

Итак, у меня есть сомнения. У меня есть файлы PDF (около 2000), которые я хочу загрузить в виде вложений в список sharepoint. Но я не хочу выгружать все файлы одним элементом. В списке у меня те же 2000 элементов (файлы имеют тот же идентификатор, что и элементы). Как правильно их загрузить? Есть способ мне sh файлов с элементами (по одному на каждый)? Или мне следует использовать другую функцию, о которой я не знаю? Например, библиотеки?

pdf список

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Друг из Reddit также опубликовал решение, использующее поток. И то, и другое действительно очень хорошо! Спасибо, чувак!

https://i.imgur.com/EFcHAPW.png https://i.imgur.com/47hpLi5.png

Кредит:

https://www.reddit.com/r/sharepoint/comments/ha2j9v/mesh_files_folder_to_sharepoint_list/

0 голосов
/ 17 июня 2020

Привет, Жуан Гильерме Безерра Алвес,

Вы можете воспользоваться преимуществами powershell, выполните следующие шаги:

  1. подготовьте элементы списка

enter image description here

подготовить файлы

enter image description here

запустить сценарий ниже:

#Set Variables
$SiteURL = "https://{tenant}.sharepoint.com/sites/abc"
$ListName = "yourlistname"

$Username='abc@xxx.onmicrosoft.com'
$Password = '***'

#region Credentials
[SecureString]$SecurePass = ConvertTo-SecureString $Password -AsPlainText -Force 
[System.Management.Automation.PSCredential]$PSCredentials = New-Object System.Management.Automation.PSCredential($Username, $SecurePass) 
#endregion Credentials
 
#Connect to PNP Online
Connect-PnPOnline -Url $SiteURL -Credentials $PSCredentials

$Folderpath ="D:\mypdffolder"

ForEach ($File in  (Get-ChildItem $FolderPath -File))
{
    # try to find the corresponding item (has the same id)
    $caml= @"
<View>
    <Query>
        <Where>
            <Eq>
                <FieldRef Name='Title' />
                <Value Type='Text'>$($File.Name)</Value>
            </Eq>
        </Where>
    </Query>
</View>
"@

    $Items = Get-PnPListItem -List $ListName -Query $caml   
    if($Items -eq $null){
        Write-Host "Do not find such an item that has the same id: $($File.Name)"
        Continue
    }

    if($Items -is [system.array]){
        $Item = $Items[0]
    }else{
        $Item = $Items
    }        
        
    $AttachmentInfo = New-Object -TypeName Microsoft.SharePoint.Client.AttachmentCreationInformation 
    $AttachmentInfo.FileName =  $File.Name
    $AttachmentInfo.ContentStream = $File.OpenRead()
    $AttchedFile = $Item.AttachmentFiles.Add($AttachmentInfo) 

    Invoke-PnPQuery  
    $AttachmentInfo.ContentStream.Close()    
}

Ссылка do c:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...