【发布时间】:2013-07-05 08:26:06
【问题描述】:
在我的网站中,我使用了 asp Fileupload 控件来上传文件,点击上传按钮后,将显示一个面板,其中将显示上传的图像以及一个用于编写图像描述的文本区域。写完描述后,我必须将图像连同单击动态创建的保存按钮的描述一起保存到数据库中。请就如何做到这一点提供一些想法。我的前端代码如下:
<form id="form1" runat="server">
<div class="transbox" id="mainbk" runat="server" style="position:absolute; top:0px; left:0px; width: 100%; height: 100%;" >
<asp:FileUpload runat="server" ID="UploadImages" style="background-color:white; position:absolute; font-family:'Palatino Linotype'; font-size:medium; top: 4px; left: 350px; right: 251px;" Width="500px" AllowMultiple="true"/>
<asp:Button runat="server" ID="uploadedFile" style="position:absolute; font-family:'Palatino Linotype'; font-size:medium; top: 4px; left: 870px; width: 112px; height: 29px;" Text="Upload" OnClick="uploadFile_Click" />
<asp:Panel ID="updtpanel" runat="server" CssClass="transbox" style="width:100%;height:100%;left:0px;top:0px;position:absolute" Visible="false">
</asp:Panel>
</div>
</form>
我的后端代码如下:
protected void uploadFile_Click(object sender, EventArgs e)
{
if (UploadImages.HasFiles)
{
int tid = 0;
string fileExt = Path.GetExtension(UploadImages.FileName).ToLower();
if (fileExt == ".jpeg" || fileExt == ".png" || fileExt == ".jpg" || fileExt == ".bmp")
{
HtmlGenericControl d = new HtmlGenericControl("div");
Button btnsave = new Button();
btnsave.Text = "Save";
sb.Append("<div class=" + "\"savback\"" + ">");
sb.Append("<div class=" + "\"head\"" + ">Write Description</div>");
foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
{
id += 1;
tid = tid + 1;
string textid = "txt" + tid;
filepath = Server.MapPath("~/Images/Gallery/" + uploadedFile.FileName);
uploadedFile.SaveAs(filepath);
newpath = "../Images/Gallery/" + uploadedFile.FileName;
try
{
updtpanel.Visible = true;
sb.Append("<div class=" + "\"dataload\"" + ">");
sb.Append("<img class=" + "\"loadimg\"" + "src=" + "\"" + newpath.ToString() + "\"" + " />");
sb.Append("<textarea class=" + "\"txtdes\"" + "id=" + "\"" + textid + "\"" + "></textarea>");
sb.Append("</div>");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
sb.Append("</div>");
d.InnerHtml = sb.ToString();
updtpanel.Controls.Add(d);
updtpanel.Controls.Add(btnsave);
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('Please Select only Image Files!!');", true);
}
}
else
{
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('Please Select a File First!!');", true);
}
}
这是上传前的样子:
上传后看起来像这样
在上传图片下方的文本框中输入描述后,请告诉我如何将其保存到数据库中。
我知道每个人都知道 facebook 如何正确上传专辑图片。同样,我想在上传图像后将其保存在数据库中。如果我没记错的话,在 Facebook 中,描述文本框将被动态创建。他们将如何引用每个描述文本框的内容并将其保存在数据库中。希望我说清楚。
【问题讨论】:
-
动态创建保存按钮的任何具体原因?不会切换可见性工作?
-
@Karthik.. 你看我在设计过程中只创建了一个面板,而我在运行时添加了其中的所有其他内容。没有具体原因,但由于我遵循的设计,我必须这样做。嗯会考虑一下,如果我可以改变设计。 :)
-
@Karthik.. 假设我在设计本身中创建了保存按钮并在其可见性之间切换。我还将为该按钮设置一个 onlclick 事件。但现在我只想从图像下的每个文本区域中检索数据内容并将其保存在数据库中。我无法在设计中创建它,它必须在运行时本身中创建。那么您知道如何从动态创建的文本区域中获取内容吗???
标签: c# asp.net sql-server file-upload