从html页面得到本地图片完整路径,传给 ashx页,ashx中,如何根据路径上传这个图片?

badnews 2009-06-07 03:10:36


由于项目原因,前端用html页面,通过 html 页传值给 ashx 页访问服务器。

现在要上传图片,同过 html 的 <input type="file" name="upFile" 〉可以得到图片的
完整路径,怎样通过本的路径上传图片呢?
...全文
1685 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gui0605 2009-06-09
  • 打赏
  • 举报
回复

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;
}
badnews 2009-06-09
  • 打赏
  • 举报
回复

newdigitime:

我想把图片路径存到数据库里,同时,还有其它文本信息存到数据库,而图片上传的指定文件夹下。

能同时提交文本和上传图片吗?



newdigitime 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 badnews 的回复:]


files.Count 为零阿

如果让 HttpContext context 包含这个文件呢?

[/Quote]

<input type=file>这种上传,必须做一个form,再加一个sumbit按钮,让用户手动选择文件后,点击提交按钮,在后台才能通过Request.Files取到上传的文件流.

你想让程序在后台自动选择客户端的一个文件并上传是不可能的,也是不允许的.要不然你的网站可以随便读取用户硬盘上文件,这还了得?
badnews 2009-06-08
  • 打赏
  • 举报
回复


没有办法吗?
badnews 2009-06-07
  • 打赏
  • 举报
回复


files.Count 为零阿

如果让 HttpContext context 包含这个文件呢?


myljg 2009-06-07
  • 打赏
  • 举报
回复
唉,真是没有办法.自己多试试嘛

public bool UploadFile(HttpContext context)
{
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类型)
}


以上代码未经测试!自己试试能不能用吧!
badnews 2009-06-07
  • 打赏
  • 举报
回复



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)
}
}
wuyq11 2009-06-07
  • 打赏
  • 举报
回复
web services上传文件
<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("\\")));

}
参考

badnews 2009-06-07
  • 打赏
  • 举报
回复

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;
//}
}
myljg 2009-06-07
  • 打赏
  • 举报
回复
告诉你一下思路,代码我就不写了,人懒:)
一、用Request.Files获取文件(先判断Request.Files.Count是否大于0,以确定存在上传文件)
二、创建HttpPostedFile用来访问上传文件(例如HttpPostedFile file = Request.Files[0])
三、通过HttpPostedFile的SaveAs方法将文件保存到服务器
四、完毕:)
zhouyongli41 2009-06-07
  • 打赏
  • 举报
回复

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧