解决方案 »
- 关于 Master page error
- 快钱充值问题
- sql2000错误,解决后加100分
- 三层的问题.
- Access中如何给查询出数据添加流水号
- 为什么用foreach 循环结果都能查到,为什么只显示了最后一条的记录
- treeview 控件安装问题
- 一个gridview控制显示数据,按一个 ctrl+I在中间第二行插入一行空白行,这样的功能能实现的吗?
- “/”应用程序中的服务器错误已添加项。字典中的关键字:“RegistryPermission”所添加的关键字:“RegistryPermission”
- 安装了.NET Framework和.NET后,win2000变成了自动登陆(不需要输入用户和密码),怎样改回来?
- 关于asp.net远程关闭显示器的源代码
- Visual Studio 2008 安装上时繁体中文怎么办?
一、用Request.Files获取文件(先判断Request.Files.Count是否大于0,以确定存在上传文件)
二、创建HttpPostedFile用来访问上传文件(例如HttpPostedFile file = Request.Files[0])
三、通过HttpPostedFile的SaveAs方法将文件保存到服务器
四、完毕:)
myljg:
files.Count 为零阿 看一下代码 private Boolean SaveImages() //string imagePath
{
///'遍历File表单元素
HttpFileCollection files = HttpContext.Current.Request.Files; ///// '状态信息
//System.Text.StringBuilder strMsg = new System.Text.StringBuilder();
// strMsg.Append("上传的文件分别是:<hr color=red>");
//try
//{
for (int iFile = 0; iFile < files.Count; iFile++)
{
// ///'检查文件扩展名字
HttpPostedFile postedFile = files[iFile];
//HttpPostedFile postedFile = files[0];
string fileName; //, fileExtension
fileName = System.IO.Path.GetFileName(postedFile.FileName);
// if (fileName != "")
// {
// fileExtension = System.IO.Path.GetExtension(fileName);
// strMsg.Append("上传的文件类型:" + postedFile.ContentType.ToString() + "<br>");
// strMsg.Append("客户端文件地址:" + postedFile.FileName + "<br>");
// strMsg.Append("上传文件的文件名:" + fileName + "<br>");
// strMsg.Append("上传文件的扩展名:" + fileExtension + "<br><hr>");
// ///'可根据扩展名字的不同保存到不同的文件夹
// ///注意:可能要修改你的文件夹的匿名写入权限。
postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("cm/") + fileName);
//}
}
//strStatus.Text = strMsg.ToString();
return true;
//}
//catch (System.Exception Ex)
//{
// // strStatus.Text = Ex.Message;
// return false;
//}
}
<form method="post" enctype="multipart/form-data" action="upload.aspx">
<input name="MyUpFile" type="file" id="MyUpFile">
<input type="submit" name="Submit" value="提交">
</form>
if (Request.Files.Count != 0){ HttpPostedFile MyUpFile = Request.Files["MyUpFile"]; MyUpFile.SaveAs(Server.MapPath("") + MyUpFile.FileName.Remove(0, MyUpFile.FileName.LastIndexOf("\\"))); }
参考
html 同过 以下代码连接 aspx页function VisitDb2(number,str,ynSynchronization,ynAlert)
{
try
{
xmlHttp = GetXmlHttpObject();
if (xmlHttp == null)
{
alert ("您的浏览器不支持AJAX!");
return;
}
var url = "DbInfo.ashx";
url = url + "?a="+ number;
url = url + "&b="+ str;
url = url + "&sid=" + Math.random();
xmlHttp.onreadystatechange = stateChanged;
xmlHttp.open("GET",url,ynSynchronization);
xmlHttp.send(null);
}
catch(e)
{
alert( e + " " + e.description)
}
}
{
bool rInfo = true; //定义一个用于返回的bool的变量,如果成功返回真,否则返回假
int iTotal = context.Request.Files.Count; //定义一个int变量,用来保存获取的文件数目
if (iTotal == 0) //判断是否存在上传的文件
rInfo = false;
else
{
try{
for (int i = 0; i < iTotal; i++) //循环处理所有上传文件
{
HttpPostedFile file = context.Request.Files[i]; //定义HttpPostedFile对象,以获取文件并处理
if (file.ContentLength > 0 || !string.IsNullOrEmpty(file.FileName))//判断文件是否合法,如果合法则处理
file.SaveAs(System.Web.HttpContext.Current.Server.MapPath("/" + Path.GetFileName(file.FileName))); //如果合法就调用SaveAs方法保存文件
else
rInfo = false;
}
}
catch
{
rInfo = false;
}
}
return rInfo; //返回一个成功或失败状态(bool类型)
}
以上代码未经测试!自己试试能不能用吧!
<input type=file>这种上传,必须做一个form,再加一个sumbit按钮,让用户手动选择文件后,点击提交按钮,在后台才能通过Request.Files取到上传的文件流.你想让程序在后台自动选择客户端的一个文件并上传是不可能的,也是不允许的.要不然你的网站可以随便读取用户硬盘上文件,这还了得?
newdigitime: 我想把图片路径存到数据库里,同时,还有其它文本信息存到数据库,而图片上传的指定文件夹下。 能同时提交文本和上传图片吗?
public static string UploadFile(HtmlInputFile filePath, System.Web.UI.WebControls.TextBox fileName)
{
string FilePath = null;
string File_Name = null;
Random rd = new Random();
string NewName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Minute.ToString() + rd.Next(100, 1000).ToString();
if (fileName.Text == "")
return "";
NewName = fileName.Text;
string fileExtname = filePath.PostedFile.FileName.Substring(filePath.PostedFile.FileName.LastIndexOf(".") + 1);
File_Name = NewName + "." + fileExtname; FilePath = HttpContext.Current.Request.MapPath(HttpContext.Current.Request.ApplicationPath + "/UpLoad/");
filePath.PostedFile.SaveAs(FilePath + File_Name);
FilePath = "../UpLoad/";
return FilePath + File_Name;
}