问题描述
如图,上传文件到指定目录后没法点击“考贝路径”按钮。代码如下:aspx:<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>上传文件</title><linkhref="StyleSheet.css"rel="stylesheet"type="text/css"></head><scriptlanguage="JavaScript"><!--functionCopyPath(FilePath){varstr=location.toString()varResult=((((str.split('?'))[1]).split('='))[1]);window.opener.Form1(Result).focus();window.opener.document.Form1(Result).value=FilePath;window.opener=null;window.close();}functionhsgimage_onclick(){}//--></script><bodyleftmargin="0"topmargin="0"marginwidth="0"marginheight="0"><formid="form1"runat="server"><div><tableborder="0"align="center"cellpadding="12"cellspacing="1"bgcolor="#6298E1"style="width:474px"><tr><tdbgcolor="#EBF2F9"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdheight="30"nowrapstyle="width:83px">选择文件:</td><tdstyle="width:332px"><inputid="UploadFile"runat="server"name="UploadFile"type="file"style="width:296px"/></td><td><asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="上传"Width="65px"/></td></tr><tr><tdnowrapstyle="width:83px;height:30px;"></td><tdstyle="width:332px;height:30px"> <aonclick="CopyPath('uppic/<%=fname%>');"><imgrunat=serversrc="images/copyUpload.gif"border=0id="hsgimage"onclick="returnhsgimage_onclick()"/></a></td></tr></table></td></tr></table></div></form></body></html>aspx.csusingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclasshsgupfile:System.Web.UI.Page{publicstringfname;protectedvoidPage_Load(objectsender,EventArgse){hsgimage.Visible=false;}protectedvoidButton1_Click(objectsender,EventArgse){if(UploadFile.Value!=null&&UploadFile.Value!=""){hsgupload();}hsgimage.Visible=true;}privatevoidhsgupload(){if(UploadFile.Value!=null){stringnam=UploadFile.PostedFile.FileName;//取得文件名(抱括路径)里最后一个"."的索引inti=nam.LastIndexOf(".");//取得文件扩展名stringnewext=nam.Substring(i);//这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复Randomrnd=newRandom();intn=rnd.Next(1000,9999);stringnewname=DateTime.Now.Year.ToString().Trim()+DateTime.Now.Month.ToString().Trim()+DateTime.Now.Day.ToString().Trim()+DateTime.Now.Hour.ToString().Trim()+DateTime.Now.Minute.ToString().Trim()+DateTime.Now.Second.ToString().Trim()+n.ToString().Trim();//保存文件到你所要的目录,这里是IIS根目录下的uploadfiles目录//注意:我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用"\"代替UploadFile.PostedFile.SaveAs(Server.MapPath("uppic/"+newname+newext));//得到这个文件的相关属性:文件名,文件类型,文件大小//stringfname;fname=newname+newext;//Response.Write("<script>javascript:alert('"+fname+"');</script>");//fenc.Text=UploadFile.PostedFile.ContentType;//fsize.Text=UploadFile.PostedFile.ContentLength.ToString();//Image1.ImageUrl="http://localhost/web/news/uploadfiles/"+newname+newext;}}}
解决方案
解决方案二:
copy路径是干嘛的功能来着,看见各种赋值把你要实现功能先描述下呗
解决方案三:
功能是吧上传的图片路径复制下来,粘贴在图片框里
解决方案四:
啥异常????
解决方案五:
@starfd功能在#2.@findcaiyzh好像不是异常,而是“拷贝路径”的功能没有完成
解决方案六:
window.opener.document.getElementById("").value=document.getElementById("UploadFile").value;不过因为浏览器安全性策略,在不同的版本下,取到的客户端的值不同,所以这个copy路径其实没多大意义,你还不如上传完成后,在opener那个页面显示上传的图片
解决方案七:
functionhsgimage_onclick(){}这函数里啥都没写啊,能实现任何功能才怪
解决方案八:
引用5楼starfd的回复:
window.opener.document.getElementById("").value=document.getElementById("UploadFile").value;不过因为浏览器安全性策略,在不同的版本下,取到的客户端的值不同,所以这个copy路径其实没多大意义,你还不如上传完成后,在opener那个页面显示上传的图片
+1客户端不要知道服务器的路径,知道了你用这个路径也访问不了你想访问图片,只能通过URL,而不是什么服务器上的D盘某文件夹,那没用
解决方案九:
引用5楼starfd的回复:
window.opener.document.getElementById("").value=document.getElementById("UploadFile").value;不过因为浏览器安全性策略,在不同的版本下,取到的客户端的值不同,所以这个copy路径其实没多大意义,你还不如上传完成后,在opener那个页面显示上传的图片
谢谢了我试着改改
解决方案十:
看到<aonclick><imgonclick><a>特意去试了一下到底先执行哪一个,试出来是做里面的,你里面的functionhsgimage_onclick(){}(╯‵□′)╯︵┻━┻空的你想干嘛,你想拿到服务器地址肯定是不合理的
解决方案十一:
引用6楼Z65443344的回复:
functionhsgimage_onclick(){}这函数里啥都没写啊,能实现任何功能才怪
恩,我发现了这个问题
解决方案十二:
引用7楼Z65443344的回复:
Quote: 引用5楼starfd的回复:
window.opener.document.getElementById("").value=document.getElementById("UploadFile").value;不过因为浏览器安全性策略,在不同的版本下,取到的客户端的值不同,所以这个copy路径其实没多大意义,你还不如上传完成后,在opener那个页面显示上传的图片+1客户端不要知道服务器的路径,知道了你用这个路径也访问不了你想访问图片,只能通过URL,而不是什么服务器上的D盘某文件夹,那没用
我试着改改
解决方案十三:
引用9楼wish907的回复:
看到<aonclick><imgonclick><a>特意去试了一下到底先执行哪一个,试出来是做里面的,你里面的functionhsgimage_onclick(){}(╯‵□′)╯︵┻━┻空的你想干嘛,你想拿到服务器地址肯定是不合理的
谢谢,functionhsgimage_onclick我尽力写