public HttpResponseMessage UploadImage()
{
try
{
var httpRequest = HttpContext.Current.Request;
int storyId = Convert.ToInt32(httpRequest["storyId"]);
if (httpRequest.Files.Count > 0)
{
string imageDir = "Images/BBImageStory/" + storyId.ToString();
IFolderInfo folder;
if (!FolderManager.Instance.FolderExists(ActiveModule.PortalID, imageDir))
folder = FolderManager.Instance.AddFolder(ActiveModule.PortalID, imageDir);
else
folder = FolderManager.Instance.GetFolder(ActiveModule.PortalID, imageDir);
// Save uploaded files to upload directory
for (int i = 0; i < httpRequest.Files.Count; i++)
{
var file = httpRequest.Files[i];
if (!FileManager.Instance.FileExists(folder, file.FileName))
{
// Add File to directory
IFileInfo ifile = FileManager.Instance.AddFile(folder, file.FileName, file.InputStream, true);
// Insert Image reference into Image Table
ImageInfo image = new ImageInfo() { FileId = ifile.FileId };
int imageId = DbController.Instance.InsertImage(image);
// Create empty language info for image
ImageLangInfo imageLang = new ImageLangInfo() { ImageId = imageId, Language = System.Threading.Thread.CurrentThread.CurrentCulture.Name, LongDescription = "", ShortDescription = "" };
DbController.Instance.InsertImageLang(imageLang);
// Combine image and story in crosstable
ForeignImageInfo foreignImage = new ForeignImageInfo() { ForeignId = storyId, ForeignToken = "STORY", ImageId = imageId, ViewOrder = 0 };
DbController.Instance.InsertForeignImage(foreignImage);
}
}
var retval = new HttpResponseMessage(HttpStatusCode.OK);
retval.Content = new StringContent("File transfer completed", System.Text.Encoding.UTF8, "text/plain");
return retval;
}
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
catch (Exception ex)
{
return Request.CreateResponse(HttpStatusCode.InternalServerError, ex);
}
}
}