上傳的檔案就在資料夾內,如果在之後沒有再用到的話怎麼辦?
所以我就做出了這樣的程式能夠為自己的圖片做簡單的新增與刪除。
這裡是主頁(接收圖片資料)的程式碼
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Img"] != null)
{
lblGetName.Text = "發現圖檔已傳送," + Session["Img"].ToString();
}
}
這裡是圖片管理員的程式碼
protected void Page_Load(object sender, EventArgs e)
{
// 這裡是讀取圖片資料夾,並取出資料
// 資料夾資料
DirectoryInfo dir = new DirectoryInfo(Server.MapPath ("Image"));
// 檔案資料 (取出自資料夾)
FileInfo[] file = dir.GetFiles();
// 計算ID 流水號
int ID = 0;
foreach (FileInfo result in file)
{
ID++;
// 創出 CheckBox,並設定相關的數值
CheckBox img = new CheckBox();
img.ID = "Img" + ID;
img.Text = "<img src='Image\\" + result.Name + "' width='100' height='100' />";
img.InputAttributes["value"] = result.Name;
// 加入到 PlaceHolder 內
PlaceHolderImage.Controls.Add(img);
}
}
protected void btnNew_Click(object sender, EventArgs e)
{
// 取得檔案路徑
string saveDir = "\\Image\\";
string fileName, savePath;
// 取得檔案名稱並儲存檔案
// 這裡是.NET 4.5的多重檔案上傳(PostedFiles)
foreach (HttpPostedFile postedFile in FuImage.PostedFiles)
{
fileName = postedFile.FileName;
savePath = Server.MapPath(saveDir + fileName);
postedFile.SaveAs(savePath);
}
Response.Write("<script language='javascript'>alert('上傳成功');location.href='ImageManager.aspx';</script>");
}
protected void btnUse_Click(object sender, EventArgs e)
{
// 取出選取檔案的名稱
string useimage = "";
for (int chk = 1; chk <= PlaceHolderImage.Controls.Count; chk++)
{
// PlaceHolder內的Checkbox
CheckBox chkimg = (CheckBox)PlaceHolderImage.FindControl("Img" + chk);
// 確認是否選取
if (chkimg.Checked)
{
useimage += Request.Form["Img" + chk]+",";
}
}
// 使用 Session 紀錄資料
Session["Img"] = useimage;
Response.Redirect("Default.aspx");
}
protected void btnDel_Click(object sender, EventArgs e)
{
// 刪除圖片
bool notexist = false;
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("Image"));
FileInfo[] file = dir.GetFiles();
int ID = 0;
foreach (FileInfo delfile in file)
{
ID ++ ;
CheckBox chk = (CheckBox)PlaceHolderImage.FindControl("Img" + ID);
if (chk.Checked)
{
//確認檔案存在
if (delfile.Exists)
{
delfile.Delete();
}
else
{
notexist = true;
}
}
}
if (notexist == true)
{
Response.Write("<script language='javascript'>alert('刪除失敗,圖檔不存在')</script>");
}
else
{
Response.Write("<script language='javascript'>alert('刪除成功');location.href='ImageManager.aspx';</script>");
}
}
參考資料
FileUpload控制項「批次上傳 / 多檔案同時上傳」的範例 -- AllowMuliple屬性
[ASP.NET] 替CheckBox增加Value值
範例下載
點我
沒有留言:
張貼留言