我有一个Fileupload
控件,当我点击上传按钮时,我只会显示图像,即进度条或加载gif图像。我通过javascript尝试了它,但我无法显示图像。 我希望在上传文件之前显示该图片。
这是我的aspx代码:
<form id="form1" runat="server">
<div class="transbox" id="mainbk" runat="server" style="position:absolute; top:0px; left:0px; width: 100%; height: 100%;" >
<fieldset style="width:51%; margin-left:300px;font-family:'Palatino Linotype';font-size:large">
<legend style="color:white;font-family:'Palatino Linotype'">Upload Video Files</legend>
<asp:FileUpload EnableViewState="true" runat="server" ID="UploadImages" style="background-color:white; position:relative; font-family:'Palatino Linotype'; font-size:medium" Width="500px" AllowMultiple="false"/>
<asp:RequiredFieldValidator ID="reqFile" runat="server" ControlToValidate="UploadImages" ErrorMessage="Select a File" style="color:red;position:absolute"></asp:RequiredFieldValidator><br />
<asp:Label Text="Description:" runat="server" ID="lbldes" style="font-family:'Palatino Linotype';position:absolute; margin-top:10px; font-size:large;color:white" ></asp:Label>
<asp:TextBox id="txtdes" runat="server" TextMode="MultiLine" Height="60px" style="margin-top:10px;margin-left:195px;" Width="300px"></asp:TextBox>
<asp:RequiredFieldValidator ID="txtreq" runat="server" ControlToValidate="txtdes" ErrorMessage="Description Required" style="color:red;position:absolute;margin-top:20px;" ></asp:RequiredFieldValidator><br />
<asp:Button runat="server" ID="uploadedFile" style="position:relative; font-family:'Palatino Linotype'; font-size:medium; width: 112px; height: 29px;" Text="Upload" UseSubmitBehavior="true" OnClick="uploadedFile_Click"/>
<asp:image id="loading_img" runat="server" style="Display:none;position:absolute;margin-top:-20px;margin-left:200px;" src="../Images/Other Images/waiting.gif" />
</fieldset>
</div>
</form>
这是我的javascript:
<script type="text/javascript">
$('#uploadedFile').click(function () {
$('#loading_img').show(); // Show image
return true; // Proceed with postback
});
</script>
这是我在aspx.cs页面中 uploadedFile 按钮的点击事件。
protected void uploadedFile_Click(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
string fileExt = Path.GetExtension(UploadImages.FileName).ToLower();
if (fileExt == ".flv" || fileExt == ".avi" || fileExt == ".mp4" || fileExt == ".3gp" || fileExt == ".mov" || fileExt == ".wmv" || fileExt == ".mpg" || fileExt == ".asf" || fileExt == ".swf")
{
try
{
filepath = Server.MapPath("~/Videos/" + UploadImages.FileName);
UploadImages.PostedFile.SaveAs(filepath);
vurl=UploadImages.FileName.ToString();
newpath = "Images//Video_Thumbs//" + createvidImage(filepath);
al = txtdes.Text.ToString();
id += 1;
string Insert = "Insert into video (vid,videoname,videourl,vidthumb) values (@id,@alter,@vrl,@IMAGE_PATH)";
SqlCommand cmd = new SqlCommand(Insert, con);
cmd.Parameters.AddWithValue("@IMAGE_PATH", newpath.ToString());
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@alter", al);
cmd.Parameters.AddWithValue("@vrl", vurl);
try
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('Video Uploaded!!');", true);
txtdes.Text = "";
}
catch (Exception e1)
{
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('" + e1.Message.ToString() + "!!');", true);
}
}
catch (Exception ex)
{
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('" + ex.Message.ToString() + "!!');", true);
}
}
}
}
请帮我在javascript或C#中执行此操作。
答案 0 :(得分:3)
这里的问题是<asp:Button/>
标签(以及所有asp标签)在页面中的呈现方式。如果右键单击并检查元素,您将看到它的ID实际上并不是“uploadedFile”,但可能类似于“ctl00_uploadedFile”,因此,您的jQuery选择器未找到元素。我推荐两件事之一:
1)检查页面并查看实际渲染元素的名称,然后相应地更新jQuery。
2)使用内联C#代码段来提取ID。例如,您可以将$('#uploadedFile')
替换为$('#' + '<%=uploadedFile.ClientID%>')
。 <%%>
部分将评估为C#并将ClientID属性(即在页面上呈现的id值)插入到jQuery选择器中。
修改:显然我误解了<asp:Button/>
代码,并使用未更改的name
属性而不是id
属性进行渲染。您希望uploadFile按钮的选择器是$('input[name="uploadedFile"]')
。