我想隐藏标签背后的文件上传控件我在此链接上找到了解决方案:
Styling an input type="file" button
这个例子有一个链接:http://jsfiddle.net/4cwpLvae/
现在点击标签打开文件上传器,上传文件后隐藏文件上传选项卡,但是我想通过aspx.cs
文件中的函数保存上传者上传的文件。
我怎么称呼这个功能?
这个链接对我没有帮助
How to call code behind function from label.text in asp.net
在标签中使用文件上传器仅用于样式。
这是我要打电话的功能
protected void Button1_Click(object sender, EventArgs e)
{
if (!inputfile.HasFile)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "isActive", "Test();", true);
//Response.Write("No file Selected"); return;
}
else
{
string filename = Path.GetFileName(inputfile.PostedFile.FileName);
string extension = Path.GetExtension(filename);
string contentType = inputfile.PostedFile.ContentType;
HttpPostedFile file = inputfile.PostedFile;
byte[] document = new byte[file.ContentLength];
file.InputStream.Read(document, 0, file.ContentLength);
/* Stream fs = inputfile.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
Byte[] bytes = br.ReadBytes((Int32)fs.Length);*/
if ((extension == ".pdf") || (extension == ".doc") || (extension == ".docx") || (extension == ".xls")
|| (extension == ".pptx"))//extension
{
if (file.ContentLength <= 31457280)//size
{
FYPEntities2 obj = new FYPEntities2();
tblFile us = new tblFile();
us.Name = filename;
us.ContentType = contentType;
us.Data = document;
// us.Data = bytes;
us.Date = DateTime.Now;
obj.tblFiles.Add(us);
ClientScript.RegisterStartupScript(GetType(), "hwa", "alert('Hello World');", true);
obj.SaveChanges();
Response.Redirect(Request.Url.AbsoluteUri);
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "isActive", "filesize();", true);
}
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "isActive", "invalidformat();", true);
}
}
}
答案 0 :(得分:1)
我认为你正在寻找这个。在页面上放置一个LinkButton并且不给它Text,因此它对用户不可见但仍然存在。
<style>
input[type="file"] {
display: none;
}
.custom-file-upload {
border: 1px solid #ccc;
display: inline-block;
padding: 6px 12px;
cursor: pointer;
}
</style>
<label for="<%=FileUpload1.ClientID %>" class="custom-file-upload">
<i class="fa fa-cloud-upload">Custom Upload</i>
</label>
<asp:FileUpload ID="FileUpload1" runat="server" />
<br />
<br />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="Button1_Click"></asp:LinkButton>
然后在代码后面使用onchange
FileUpload1
将UniqueID
属性附加到LinkButton1
。当上传更改时,javascript将提交LinkButton的PostBack事件,从而自动上传文件。
protected void Page_Load(object sender, EventArgs e)
{
FileUpload1.Attributes.Add("onchange", "__doPostBack('" + LinkButton1.UniqueID + "','')");
}