WSS 3.0 : upload d'un fichier depuis un poste client vers un site SP

WSS 3.0 : upload d'un fichier depuis un poste client vers un site SP - C#/.NET managed - Programmation

Marsh Posté le 25-06-2008 à 11:17:59    

Bonjour à tous,
 
En spécifiant l'emplacement d'un fichier dans une application console, le transfert se fait bien vers le site ou laz bibliothèque spécifiée mais pas depuis une application web avec un composant FileUpload.
 
L'erreur retournée est la suivante (problème de sécurité et de compte utilisé probablement) :
 
http://kibito.free.fr/images_net/prog/erreurUploadFileToSPList2.jpg
 
J'ai créé une page web UploadFile.aspx qui comporte uniquement le composant FileUpload et un bouton pour l'envoi de fichier. J'utilise cependant l'élévation de privilèges pour accéder au site SharePoint, mais cela ne marche pas non plus.. Voici le code lors du clic sur le bouton pour envoyer le document :
 
 

Code :
  1. protected void Button1_Click(object sender, EventArgs e)
  2.     {
  3.         //String savePath = ConfigurationManager.AppSettings.Get("fileUploadFolder" );
  4.         String savePath = @"C:\temp\uploadFiles";
  5.         if (FileUpload1.HasFile)
  6.         {
  7.             String fileName = FileUpload1.FileName;
  8.             savePath += fileName;
  9.             // Call the SaveAs method to save the  
  10.             // uploaded file to the specified path.
  11.             // This example does not perform all
  12.             // the necessary error checking.               
  13.             // If a file with the same name
  14.             // already exists in the specified path,   
  15.             // the uploaded file overwrites it.
  16.            
  17.            
  18.             //FileUpload1.SaveAs(savePath);
  19.            
  20.             // Notify the user of the name of the file
  21.             // was saved under.
  22.             Response.Write("Your file was saved as " + fileName + " " );
  23.             Response.Write("<a href='http://serveur:port/uploadFiles/" + fileName + "'>" + fileName + "</a>" );
  24.             // tests
  25.             SPSecurity.RunWithElevatedPrivileges(delegate()
  26.             {
  27.                 using (SPSite site = new SPSite("http://serveur:portSP/test" ))
  28.                 { 
  29.                    
  30.                     if (FileUpload1.PostedFile == null)
  31.                         return;
  32.                     SPWeb web = site.OpenWeb();
  33.                     SPFolder folder = web.GetFolder("Documents partages" );
  34.                     SPUser user = site.Owner;
  35.                     FileStream fs = new FileStream(@"C:\tempuploads\test.doc", FileMode.Open);
  36.                     byte[] fileContents = new byte[(int)fs.Length];
  37.                     fs.Read(fileContents, 0, (int)fs.Length);
  38.                     fs.Close();
  39.                     SPFile file = folder.Files.Add(@"C:\tempuploads\test.doc", fileContents, user, user, DateTime.Now.ToUniversalTime(), DateTime.Now.ToUniversalTime());
  40.                    
  41.                 }
  42.             });
  43.            
  44.             //FileInfo info = new FileInfo(ConfigurationManager.AppSettings.Get("fileUploadFolder" ) + fileName);
  45.             //info.Delete();
  46.         }
  47.         else
  48.         {
  49.             // Notify the user that a file was not uploaded.
  50.             Response.Write("You did not specify a file to upload." );
  51.         }
  52.     }


 
Avez-vous déjà effectué un module qui permettait le transfert de fichiers un peu comme je l'expose afin de résoudre ce problème ?
 
Merci de vos réponses.


Message édité par KibitO le 25-06-2008 à 11:22:15

---------------
Je suis le créateur du groupe Facebook "Tout sur la copropriété" : https://www.facebook.com/groups/coproprietaires/
Reply

Marsh Posté le 25-06-2008 à 11:17:59   

Reply

Marsh Posté le 25-06-2008 à 15:06:37    

Problème résolu en mettant une propriété de la liste ou du site à true : AllowUnsafeUpdates. Cela permet d'accorder des droits lors d'une action sur une liste SP.
 
Je l'avais déjà utilisé auparavant mais simplement en mode Web. Beaucoup de temps perdu pour si peu finalement ^^
 
Voici les sources :
 
http://blogs.msdn.com/mpoulson/arc [...] 99504.aspx
http://moldenco.blogspot.com/2007/ [...] es-to.html
http://www.infopathdev.com/forums/ [...] aspx#25687
http://farhanfaiz.wordpress.com/20 [...] sing-code/


---------------
Je suis le créateur du groupe Facebook "Tout sur la copropriété" : https://www.facebook.com/groups/coproprietaires/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed