bonjour,
j'ai une liste de document [Document Library] dans mon site, comment je pourrai creer un nouveau document dans cette liste avec du code.
merci
bonjour,
j'ai une liste de document [Document Library] dans mon site, comment je pourrai creer un nouveau document dans cette liste avec du code.
merci
Bonjour,
J'ai été soumis au même problème que toi la semaine dernière et voici la solution.
Explication du code somme toute assez simple mais dure à trouver quand on connait pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SPList list // paramètre reçu par ma fonction, c'est la liste sur laquelle travaille mon event list.ParentWeb.AllowUnsafeUpdates = true; SPFolder fold = list.ParentWeb.Folders[list.Title]; fold.Files.Add(folder + "\\" + nom_fichier, fichier);
Soit tu démarre en ayant déjà une instance de ta liste sous forme de SPList reçue en paramètre dans mon cas.
Soit tu as un objet SPWeb.
Dans les deux cas, il faut ouvrir ta liste en tant qu'une instance d'un objet SPFolder. Il faut également que tu autorise le site web à recevoir de UnsafeUpdate sinon ca ne passe pas.
Me demande pas pourquoi, je n'ai pas trouver de réponses. Je pense que ca doit être une question de droit. Il doit être possible de faire exécuter le code en tant qu'utilisateur x ou y mais je n'ai pas encore cherché.
Voila j'espere avoir répondu à ta question le plus clairement possible
merci pour la reponse j'ai fait presque la meme chose, je pense que c'est le unsafeupdate qui pose probleme, je vai l'ajouter a mon code et je te reponderai
merci
J'ai créé une application Console qui est censée parcourir un répertoire et uploader le contenu dans une bibliothèque de documents Sharepoint (ici en version WSS 2.0). L'application marche parfaitement pour un site mais pas pour un autre et pourtant j'ai mis AllowUnsafeUpdates à true. Le compte qui lance l'.exe est admin du serveur et owner des 2 sites.
Voici ma fonction:
public bool createSharepointDocument(string code)
{
bool ok;
long fileSizeLong = _myFileInfo.Length;
int fileSize = Convert.ToInt32(fileSizeLong);
_myFileStream = new FileStream(_myFileInfo.FullName, FileMode.Open, FileAccess.Read);
byte[] bArray = new byte[fileSize];
_myFileStream.Read(bArray, 0, fileSize);
folderPath = _mySite.Url + "/" + code;
Console.WriteLine(folderPath+"/"+_myFileInfo.Name);
SPFolder myFolder = _myWeb.GetFolder(folderPath);
// Set AllowUnsafeUpdates = true to avoid security error
_myWeb.AllowUnsafeUpdates = true;
try
{
myFolder.Files.Add(folderPath + "/" + _myFileInfo.Name, bArray, true);
ok = true;
}
catch (Exception e2)
{
ok = false;
Console.Out.WriteLine(e2.Message);
}
return ok;
}
Merci pour l'aide
ben si tu l'a deja testé sur un site et que sa a marché ça sera le cas pour n'importe kel site wss. donc a mon avis c'est une question autorisations au niveau de votre site. verifier les permissions et les privilege de l'utilisateur qui execute la fonction par rapport a la liste de document
Partager