求助,asp.net web.上传文件代码异常

问题描述

如图,上传文件到指定目录后没法点击“考贝路径”按钮。代码如下: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">&nbsp;<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我尽力写

时间: 2025-01-18 19:03:03

求助,asp.net web.上传文件代码异常的相关文章

UpdatePanel上使用FileUpload上传文件代码

updatepanel上使用fileupload上传文件代码 @page language="c#" masterpagefile="~/evamanager.master" autoeventwireup="true" codefile="hv_excel.asp教程x.cs" inherits="hv_excel" title="untitled page" %> <as

Web上传文件的原理及实现

本文为原创,如需转载,请注明作者和出处,谢谢! 现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload.还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons FileUpload).在asp.net中也有相应的上传文件的控件. 虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很大的帮助,下面就来讲一下通过浏览器上传文件的基本原理.在了解了

ASP跨服务器上传文件完美解决

服务器|解决|上传 如果你有两个空间,一个大而慢,另外一个小而快,或者其中一个不支持FSO,那么跨服务器上传文件这个问题就摆在你面前了,下面就是我在解决ylog.net里面的跨服务器上传文件的日记,这个问题看似简单,里面的细节问题却是非常有趣 前提条件,空间都必须支持ASP,上传文件的服务器支持FSO,下面的叙述中,diygame.com为存上传文件的服务器,ylog.net为网站服务器,即显示用户界面的服务器... 实现功能,文件上传,上传后在网页的文本区域自动加上对于图片的UBB码,为了清楚

ASP.net判断上传文件类型的三种有效方法

 这篇文章主要介绍了用ASP.net判断上传文件类型的三种方法,需要的朋友可以参考下 一.安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法.   代码如下: Boolean fileOk = false;  string path = Server.MapPath("~/images/");  //判断是否已经选取文件  if (FileUpload1.HasFile)  {  //取得文件的扩展名,并转换成小

java web 上传文件之后如何自动给文件生成缩略图!!!

问题描述 java web 上传文件之后如何自动给文件生成缩略图!!! 已经实现多文件多格式同时上传,如何给上传的每个文件都生成缩略图?方便用户查看! 解决方案 可以看下 IM4JAVA 解决方案二: 可以自己生成缩略图.下面是简要代码:public void decreaseImageSize(String path OutputStream os String mediaType) throws IOException{ try{ File file = new File(path); if

ASP.NET 在上传文件前判断文件大小的问题

问题描述 ASP.NET在上传文件前判断文件大小的问题大家好,VisualStudio的WebForm中我用了FileUpload控件来向数据库提交文件,我知道IIS默认限制4M:而我是通过程序控制到了3M以下.但每次判断都是文件上载之后,才能通过FileUpload1.PostedFile.ContentLength取到文件大小.如果用户上传了大于4M或更大的文件,IE会报错,体验不好:请问ASP.NET是否有办法在文件上载之前,判断文件大小呢? 解决方案 解决方案二:JQuery验证文件大小

php curl 上传文件代码实例

  这篇文章主要介绍了php curl 上传文件代码实例,本文给出了两种实现方法,并分别给出了实现代码,需要的朋友可以参考下 假设server端上传文件处理脚本upload.php: 代码如下: print_r($_POST); print_r($_FILES); 1.使用 CURL 默认的方法 复制代码 代码如下: //如果php文件是utf8编码,系统是GBK编码,那么就需要转下编码,要不然Php在系统中找不到这个文件 $file = realpath(mb_convert_encoding

php上传文件代码

原文地址:php上传文件代码作者:风云之士  function Upload($uploaddir)      {         $tmp_name =$_FILES['file']['tmp_name'];  // 文件上传后得临时文件名          $name     =$_FILES['file']['name'];     // 被上传文件的名称         $size     =$_FILES['file']['size'];    //  被上传文件的大小        

asp.net 如何上传文件?

问题描述 asp.net如何上传文件?谢谢各位大虾! 解决方案 解决方案二:有上传控件的解决方案三:引用1楼cychris的回复: 有上传控件的 解决方案四:用上传控件stringpicture=this.fuploadPic.PostedFile.FileName;//获取客户端的路径名字picture=DateTime.Now.ToFileTime().ToString()+picture.Substring(picture.LastIndexOf("."));//我把文件名字重新