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) :
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 :
- protected void Button1_Click(object sender, EventArgs e)
- {
- //String savePath = ConfigurationManager.AppSettings.Get("fileUploadFolder" );
- String savePath = @"C:\temp\uploadFiles";
- if (FileUpload1.HasFile)
- {
- String fileName = FileUpload1.FileName;
- savePath += fileName;
- // Call the SaveAs method to save the
- // uploaded file to the specified path.
- // This example does not perform all
- // the necessary error checking.
- // If a file with the same name
- // already exists in the specified path,
- // the uploaded file overwrites it.
-
-
- //FileUpload1.SaveAs(savePath);
-
- // Notify the user of the name of the file
- // was saved under.
- Response.Write("Your file was saved as " + fileName + " " );
- Response.Write("<a href='http://serveur:port/uploadFiles/" + fileName + "'>" + fileName + "</a>" );
- // tests
- SPSecurity.RunWithElevatedPrivileges(delegate()
- {
- using (SPSite site = new SPSite("http://serveur:portSP/test" ))
- {
-
- if (FileUpload1.PostedFile == null)
- return;
- SPWeb web = site.OpenWeb();
- SPFolder folder = web.GetFolder("Documents partages" );
- SPUser user = site.Owner;
- FileStream fs = new FileStream(@"C:\tempuploads\test.doc", FileMode.Open);
- byte[] fileContents = new byte[(int)fs.Length];
- fs.Read(fileContents, 0, (int)fs.Length);
- fs.Close();
- SPFile file = folder.Files.Add(@"C:\tempuploads\test.doc", fileContents, user, user, DateTime.Now.ToUniversalTime(), DateTime.Now.ToUniversalTime());
-
- }
- });
-
- //FileInfo info = new FileInfo(ConfigurationManager.AppSettings.Get("fileUploadFolder" ) + fileName);
- //info.Delete();
- }
- else
- {
- // Notify the user that a file was not uploaded.
- Response.Write("You did not specify a file to upload." );
- }
- }
|
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