ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法

ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能。
这就需要借用客户端的onchange事件,调用__doPostBack方法来用LinkButton的OnClick事件模拟一个事件触发的过程,具体代码如下:

客户端:

<asp:FileUpload ID="fuPhoto" onchange="javascript:__doPostBack(‘lbUploadPhoto‘,‘‘)" runat="server" ToolTip="选择图片" />

<asp:LinkButton ID="lbUploadPhoto" runat="server" OnClick="lbUploadPhoto_Click"></asp:LinkButton>

后台代码:

//自动上传事件

protected void lbUploadPhoto_Click(object sender, EventArgs e)

{

fileUpload();

}

//从控件上传文件

public void fileUpload()

{

if (fuPhoto.PostedFile != null && fuPhoto.PostedFile.ContentLength > 0)

{

string ext = System.IO.Path.GetExtension(fuPhoto.PostedFile.FileName).ToLower();

if (ext != ".jpg" && ext != ".jepg" && ext != ".bmp" && ext != ".gif")

{

return;

}

string filename = "Image_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ext;

string path = "./UploadPhoto/" + filename;

fuPhoto.PostedFile.SaveAs(Server.MapPath(path));

Response.Redirect("ImageCut.aspx?Picurl=" + Server.UrlEncode(path));

}

else

{

//do some thing;

}

}

时间: 2024-10-12 15:50:54

ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法的相关文章

Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名

string fileNameNo = Path.GetFileName(FileUploadImg.PostedFile.FileName); //获取文件名和扩展名string DirectoryName = Path.GetDirectoryName(FileUploadImg.PostedFile.FileName); //获取文件所在目录string Extension = Path.GetExtension(FileUploadImg.PostedFile.FileName); //

为Kindeditor控件添加图片自动上传功能

Kindeditor是一款功能强大的开源在线HTML编辑器,支持所见即所得的编辑效果.它使用JavaScript编写,可以无缝地与多个不同的语言环境进行集成,如.NET.PHP.ASP.Java等.官方网站可以查看这里:http://kindeditor.net/index.php Kindeditor本身提供了许多非常实用的插件,由于代码开源,开发人员可以根据需要对其进行任意扩展和修改. 在使用Kindeditor编辑网站内容时考虑这样一个场景:编辑人员往往会从其它页面或者Word文档将内容复

Asp.net中FileUpload控件实现图片上传并带预览显示

单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理: 采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的单击事件中加载已上传图片. 2.关键代码:     页面代码: 1 <asp:FileUpload ID="FileUpload" runat="server" /> 2 <asp:Button ID="BtnUp" runat="

Microsoft ReportViewer 控件类型版本兼容问题及解决方法

错误 Parser Error Message: The base class includes the field 'rvEquipment', but its type (Microsoft.Reporting.WebForms.ReportViewer) is not compatible with the type of control (Microsoft.Reporting.WebForms.ReportViewer). 添加引用,因为项目的.Net框架版本是4.0,因此Report

C# 引发“线程间操作无效: 从不是创建控件“XXX”的线程访问它” 解决方法

在异步线程启动后添加 “CheckForIllegalCrossThreadCalls = false;”即可有效的防止 异步线程给UI控件赋值时  引发异常 例如: //Framework 2.0 //ServerThread = new Thread(RecieveAccept); //ServerThread.Start(); //Framework 4.0以上 ServerTask = new Task(() => RecieveAccept()); ServerTask.Start()

关于在xp系统下CTreeCtrl控件不显示图标的一种解决方法

在最近的项目中,遇到 了这样一个比较棘手的问题,最后花了一天的时间才解决,现总结一下,以供大家参考! 问题:原来的项目工程在XP系统下用VC6编写的,一切没有问题.但由于现实需要需要在WIN7/XP系统运行,我们把工程转到了VC2010,在WIN7下没有问题.但在XP却出现了一个莫名的问题:就是CTreeCtrl控件的BMP图标不显示,在显示图标的地方全部不显示(为空),经过反复检测,确认代码没有问题(在WIN7系统下没有出现问题). 其中的显示图标的CTreeCtrl控件代码如下: .h文件

线程间操作无效: 从不是创建控件“pbarc”的线程访问它 解决方法

public partial class Form5 : Form { public Thread PBarThread; private delegate void MyTestDelegate(object obj); private MyTestDelegate myTest; /// <summary> /// dev进度条 /// </summary> private DevExpress.XtraEditors.ProgressBarControl pBarc; pub

027. asp.net中数据绑定控件之 GridView控件

GridView控件支持下面的功能: 绑定至数据源控件, 如SqlDataSource 内置排序功能 内置更新和删除功能 内置分页功能 内置行选择功能 可以编程方式访问GridView对象模型以动态设置属性 处理事件等 多个键字段 用于超链接列的多个数据字段 可通过主题和样式自定义外观 Girdview控件常用属性: BackImageUrl 背景图片 EmptyDtatText 没有任何数据时显示的文字 GridLines 网格线的样式 ShowHeader 是否显示页首连接 ShowFoot

asp.net fileupload控件上传图片并预览图片

页面代码: <form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="上传" Width="54px&q