asp.net - Excepción de archivo no encontrado una vez implementada en Servidor
image sharepoint (2)
Estoy usando el siguiente código para cargar un archivo de imagen en una biblioteca de documentos de SharePoint. El código funciona bien localmente, pero una vez implementado en el servidor, recibo la excepción como archivo no encontrado.
String fileToUpload = FlUpldImage.PostedFile.FileName; //@"C:/Users/admin.RSS/Desktop/Photos/me_skype.jpg";
String documentLibraryName = "SiteAssets";
if (!System.IO.File.Exists(fileToUpload))
throw new FileNotFoundException("File not found.", fileToUpload);
SPFolder myLibrary = web.Folders[documentLibraryName];
// Prepare to upload
Boolean replaceExistingFiles = true;
String fileName = CheckStringNull(txtFirstName.Text) + CheckStringNull(txtLastName.Text) + CheckDateNull(txtDOB) + System.IO.Path.GetFileName(fileToUpload); ;
if (fileName.Contains(''/''))
{
fileName = fileName.Replace("/", "");
}
if (fileName.Contains('':''))
{
fileName = fileName.Replace(":", "");
}
FileStream fileStream = File.OpenRead(fileToUpload);
//Upload document
SPFile spfile = myLibrary.Files.Add(fileName, fileStream, replaceExistingFiles);
string url = site.ToString() + "/" + spfile.ToString();
if (url.Contains("="))
{
url = url.Split(''='')[1];
}
//Commit
myLibrary.Update();
La carga del archivo de cadena contiene URL como C:/Users/admin.RSS/Desktop/Photos/me.jpg
Esta URL es en realidad el sistema del cliente y el código del lado del servidor arroja una excepción como archivo no encontrado. ¿Cómo manejar este problema?
ACTUALIZAR:
Eliminé las líneas de código que comprueban si el archivo existe y ahora FileStream fileStream = File.OpenRead(fileToUpload);
la excepción en FileStream fileStream = File.OpenRead(fileToUpload);
como c:/windows/system32/inetsrv/20120605_133145.jpg cold not be found
Amablemente ayuda. Gracias
if (this.fuAvatarUpload.HasFile && this.fuAvatarUpload.PostedFile.FileName.Length > 0)
{
string extension = Path.GetExtension(file.FileName).ToLower();
string mimetype;
switch (extension)
{
case ".png":
case ".jpg":
case ".gif":
mimetype = file.ContentType;
break;
default:
_model.ShowMessage("We only accept .png, .jpg, and .gif!");
return;
}
if (file.ContentLength / 1000 < 1000)
{
Image image = Image.FromStream(file.InputStream);
Bitmap resized = new Bitmap(image, 150, 150);
byte[] byteArr = new byte[file.InputStream.Length];
using (MemoryStream stream = new MemoryStream())
{
resized.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
byteArr = stream.ToArray();
}
file.InputStream.Read(byteArr, 0, byteArr.Length);
profile.ImageUrl = byteArr;
profile.UseGravatar = false;
profileService.UpdateProfile(profile);
this._model.ShowApprovePanel();
}
else
{
_model.ShowMessage("The file you uploaded is larger than the 1mb limit. Please reduce the size of your file and try again.");
}
}
Guardar el archivo físicamente en el servidor y trabajar en el mismo me ayudó a resolver mi problema.