100分求上传图片后用JS返回值的问题

weiqiaoxyz 2010-12-10 02:02:05
图片上传页面只有一个图片上传.然后在其他页面(比如A.ASPX)用框架引用这个文件..上传以后.将上传的图片名称返回到A.ASPX中的一个div中

上传文件:text.aspx


<form id="form1" runat="server">
<asp:FileUpload ID="image" runat="server" />
<input type="button" value="插入图片" class="upload" onClick="postfile()"/>
</form>


后台:text.aspx.cs


protected void Page_Load(object sender, EventArgs e)
{
string filename = "";
string name = image.FileName;
if (name != null && name != String.Empty)
{
string contentType = image.PostedFile.ContentType;
if (contentType.StartsWith("image/"))
{
int size = image.PostedFile.ContentLength;
if (size > 500000)
{
Member.get_error("图片大小请保持在500k以内!", "1");
}
string type = name.Substring(name.LastIndexOf(".") + 1);
string protimename = System.DateTime.Now.ToString("yyyyMMddHHmmssms");
filename = protimename + "." + type;
//定义用户名为文件夹名称
string dFileName = WebUser.Get_personname();
string sFileDir = Server.MapPath("/up/" + dFileName);
if (!System.IO.Directory.Exists(sFileDir))
{
System.IO.Directory.CreateDirectory(sFileDir);
}

string filePath = Server.MapPath("/up/" + dFileName + "/") + filename;
image.SaveAs(filePath);
Response.Write("<script>window.opener.document.xyz.innerHTML=" + filePath + "</script>");
}
else
{
WebUser.get_error("产品图片格式不正确!", "1");
}
}
}




A.ASPX
<iframe id="img" name="img" frameborder="0" width="578px" height="80px" scrolling="no" src="text.aspx"></iframe>
<DIV ID="AAAA"></DIV>

因为图片可能要上传多个.我想每上传一个产品就在DIV中显示出来上传的图片名称..



分不够可再加.谢谢帮忙!
...全文
213 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dylan-Wang 2010-12-10
  • 打赏
  • 举报
回复
这种情况下,我一般都是用5楼的方法解决。<%=图片名%> 你可以 在text。aspx。cs 中上传成功是添加一段代码 strName=图片名称 然后在text.aspx 页面上加一个div div中绑定 strName ,这样你在AA.aspx中引用text.aspx的时候就相当于添加了图片名称了。
weiqiaoxyz 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhh107 的回复:]
那里取不到值?取不到什么值?

我是测试过发上来的
[/Quote]

点上传.上传完以后.图片都在..但在那个DIV中.没有任何内容呀
newdigitime 2010-12-10
  • 打赏
  • 举报
回复

<DIV ID="AAAA"></DIV>

Response.Write("<script>parent.document.getElementById("AAAA").innerHTML+='" + filePath + "'</script>");
cherho0 2010-12-10
  • 打赏
  • 举报
回复
使用Jquery的post
  • 打赏
  • 举报
回复

那里取不到值?取不到什么值?

我是测试过发上来的
weiqiaoxyz 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhh107 的回复:]
我的方法如下:

1、在你图片上传完成的代码后面,加上代码如下:

C# code

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "parent.window.Test(" + filename + ")", true);



替换你代码中的
Response.Write("<scrip……
[/Quote]

这个取不到值呢?
quanpp 2010-12-10
  • 打赏
  • 举报
回复
iframe.rar
这是获取iframe里面值的demo 已经实现了跟你差不多功能,你可以借鉴下!
quanpp 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 koukoujiayi 的回复:]
在上传button的click下:
主页面:
document.getElementById('iframe1').src = "Default2.aspx?fileName='"+file+"'";

[/Quote]
这里iframe1取不到吧?
  • 打赏
  • 举报
回复

我的方法如下:

1、在你图片上传完成的代码后面,加上代码如下:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "", "parent.window.Test(" + filename + ")", true);


替换你代码中的
Response.Write("<script>window.opener.document.xyz.innerHTML=" + filePath + "</script>");

2、在a.asp页面中加上js代码如下

<script type="text/javascript">

function Test(filename) {
var content = document.getElementById("AAAA").innerHTML;
content = content + " 自己处理 " + filename;
document.getElementById("AAAA").innerHTM = content;
}
</script>



No1bigtooth 2010-12-10
  • 打赏
  • 举报
回复
<%=变量名%>调用后台变量,直接把路径给前台
quanpp 2010-12-10
  • 打赏
  • 举报
回复
没必要写了,用js就能实现了,只不过要在A.ASPX通过某个按钮,来触发getImg()方法,这样能实现你的效果但是有点太笨,我再想想!
koukoujiayi 2010-12-10
  • 打赏
  • 举报
回复
在上传button的click下:
主页面:
===================================================
protected void Button3_Click(object sender, EventArgs e)
{
//..............
string file = "xxxxx";
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "test('"+file+"')", true);
}

js:
<script type="text/javascript">
function test(file)
{
document.getElementById('iframe1').src = "Default2.aspx?fileName='"+file+"'";
}
</script>

主页面中的iframe的id为iframe1,调用的网页名为Default2.aspx:
如:
<iframe id="iframe1" src="Default2.aspx" ></iframe>

Default2.aspx中有一div,id为div1
如:<div id="div1"></div>
则在Default2.aspx的Page_Load中
if(Request.QueryString["fileName"]!=null)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "document.getElementById('div1').innerHTML ="+Request.QueryString["fileName"].ToString(), true);
}
weiqiaoxyz 2010-12-10
  • 打赏
  • 举报
回复
那text.aspx.cs里面返回该怎么处理?
quanpp 2010-12-10
  • 打赏
  • 举报
回复
A.ASPX
这么写

function getImg(){
var gImg=document.frames("img").document.all("image").value;
var info=document.getElementById("AAAA");
if(gImg==""){
info.innerText="没有上传图片";
}else{
info.innerText=gImg; //这里需要截取字符串,这个你自己能解决吧?
}
}

62,046

社区成员

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

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

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

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