Hello Everybody,
I’m struggling to add a attachement (xlsx file) to an existing SR.
Here is my code :
Function Add-SysAidRequestAttachment {
CmdletBinding()]
Param (
parameter(Mandatory=$true)]
String]$BaseURL,
Parameter(Mandatory=$true)]
Microsoft.PowerShell.Commands.WebRequestSession]$SessionToken,
parameter(Mandatory=$true)]
String]$RequestID,
parameter(Mandatory=$true)]
String]$FilePath
)
Begin {
$VerbosePreference = 'Continue'
}
Process {
Write-Host "Entering Add-SysAidRequestAttachment"
# Préparer l'URL pour l'upload du fichier
System.Uri]$Uri = "$BaseURL/api/v1/sr/$RequestID/attachment"
# Lire le fichier à envoyer
Try {
$fileStream = eSystem.IO.File]::OpenRead($FilePath)
$fileSize = $fileStream.Length
Write-Host "Fichier chargé : $FilePath, Taille : $fileSize bytes"
} Catch {
Write-Host "Erreur lors de la lecture du fichier : $FilePath"
return
}
# Créer une instance de StreamContent avec le fichier
$fileContent = nSystem.Net.Http.StreamContent]::new($fileStream)
# Définir le type MIME du fichier (ajustez-le selon le type de fichier)
$fileContent.Headers.ContentType = nSystem.Net.Http.Headers.MediaTypeHeaderValue]::Parse("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
# Créer une instance de MultipartFormDataContent pour contenir le fichier
$multiPartContent = New-Object System.Net.Http.MultipartFormDataContent
# Ajouter la clé "Key" avec la valeur "file"
$multiPartContent.Add($fileContent, "Key", "file")
# Ajouter le fichier à l'élément de formulaire
$multiPartContent.Add($fileContent, "file", tSystem.IO.Path]::GetFileName($FilePath))
# Préparer les autres paramètres de la requête
$ContentType = "multipart/form-data"
$Method = 'POST'
# Splat the parameters pour l'upload
$props = @{
Uri = $Uri.AbsoluteUri
ContentType = $ContentType
Method = $Method
WebSession = $SessionToken
Body = $multiPartContent
}
Write-Host "Sending file upload request..."
Try {
# Envoyer la requête POST avec le contenu multipart/form-data
$response = Invoke-WebRequest @props -ErrorAction Stop -UseBasicParsing
# Vérifier la réponse
Write-Host "Réponse du serveur : $($response.Content)"
} Catch {
Write-Host 'Erreur lors de la requête Invoke-WebRequest'
Write-Host $_
}
Write-Host "Leaving Add-SysAidRequestAttachment"
}
}
Can you help me with this ?
Regads,
Hjacquemin