2011-03-30 40 views
0

我建立一个类帮助的图像类实现

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI.WebControls; 

namespace CDN 
{ 
public class Image 
{ 
    #region Image parameters 

    private int _PG_ID; 
    private string _PG_FileName; 
    private int _PG_ItemId; 
    private int _TD_ID; 
    private Boolean _PG_Visible; 
    private string _PG_Caption; 

    public int PG_ID 
    { 
     get { return _PG_ID; } 
     set { _PG_ID = value; } 
    } 

    public string PG_FileName 
    { 
     get { return _PG_FileName; } 
     set { _PG_FileName = value; } 
    } 

    public int PG_ItemId 
    { 
     get { return _PG_ItemId; } 
     set { _PG_ItemId = value; } 
    } 

    public int TD_ID 
    { 
     get { return _TD_ID; } 
     set { _TD_ID = value; } 
    } 

    public Boolean PG_Visible 
    { 
     get { return _PG_Visible; } 
     set { _PG_Visible = value; } 
    } 

    public string PG_Caption 
    { 
     get { return _PG_Caption; } 
     set { _PG_Caption = value; } 
    } 
    #endregion 

    public Image(int PG_ID) 
    { 
     GetImage(PG_ID); 
    } 

    public Image() 
    { 

    } 

    private void GetImage(int PG_ID) 
    { 
      //TODO get image data from db and fill all parameters with the data 
    } 

    public int SaveImage(FileUpload fileUpload,string caption,Boolean visible,int toolId,int itemId) 
    { 
     try 
     { 
      SaveImageToTemporaryFolder(fileUpload); 
      return CreateImageOnDb(fileUpload.FileName, caption, visible, toolId, itemId); 
     } 
     catch (Exception) 
     { 

      throw; 
     }  
    } 

    private int CreateImageOnDb(string fileName, string caption, bool visible, int toolId, int itemId) 
    { 
     //TODO save image data on db return image id 
     return 0; 
    } 

    private void SaveImageToTemporaryFolder(FileUpload fileUpload) 
    { 
     try 
     { 
      string savePath = HttpContext.Current.Server.MapPath("~") + "\\upload\\pgallery\\"; 
      fileUpload.SaveAs(savePath + fileUpload.FileName); 
     } 
     catch (Exception) 
     { 

      throw; 
     } 
    } 
} 
} 

如何传递文件?

编辑: 在函数SaveImage我传递一个FileUpload控件。
我想要使用这样的类:
当上传图像到一个新的图像对象和传递给他所有的数据,但我怎么能把他的文件。

Image img = new Image(); 
img.PG_Caption = "my file name"; 
img.PG_Visible = True; 
img.SaveImage(file); 
+0

你能否详细说明一点,目前还不清楚你想要达到的目标。 – RubbleFord 2011-03-30 11:44:30

回答

0

你可以改变你的SaveImage函数使用的是流,并通过在这样的:

using (MemoryStream stream = new MemoryStream(fileUpload.FileBytes)) 
{ 
    img.SaveImage(stream); 
} 
+0

fileUpload.FileData中有一个错误,然后在File.OpenRead() – eyalb 2011-03-30 12:16:29

+0

是的,我脑海中有两个不同的想法 - 更新代码。 – 2011-03-30 12:32:09