请都高手,上传文件的问题?本地上传没问题,而在另一台电脑上传就出现了下面的问题.

cgmx 2002-12-04 06:55:27
“/wwwtest”应用程序中的服务器错误。
--------------------------------------------------------------------------------

运行时错误
说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。

详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。

<!-- Web.Config 配置文件 -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>


注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。

<!-- Web.Config 配置文件 -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>



///////////////////////////////////////////////////////////

以下是原代码?/

<%@ Import Namespace=" System.IO " %>
<html>
<BODY>
<SCRIPT LANGUAGE="C#" RUNAT="SERVER">
void UploadFile_Clicked (Object Sender,EventArgs e) {
  string strFileName;
  string strFileNamePath;
  string strFileFolder;
  ///如果上传目录为空,就使用" c:\ "作为缺省上传目录
  /// 获得上传到服务器的目录名称
  if (dir.Value != "")
  strFileFolder=dir.Value ;
  else
  strFileFolder="http:\\files\\";
  
//e:\\webroot\\
  ///获得文件名称
  strFileName = loFile.PostedFile.FileName;
   ///*注:loFile.PostedFile.FileName 返回的是
   ///通过文件对话框选择的文件名,这之中包含了文件的目录信息
  strFileName = Path.GetFileName (strFileName );
   ///去掉目录信息,返回文件名称

  /// 判断上传目录是否存在,不存在就建立
  if (!Directory.Exists ( strFileFolder ) )
  Directory.CreateDirectory ( strFileFolder ) ;
  //File.Move(loFile.PostedFile.FileName,"e:\\1111.txt");

   ///上传文件到服务器
  strFileNamePath = strFileFolder + strFileName;

//strFileName;
   /// 得到上传目录及文件名称

link.NavigateUrl = "http:/file/"+strFileName;
link.Text = fname.Value;


  loFile.PostedFile.SaveAs (strFileNamePath );

define1.Text = define.Text;
   /// 获得并显示上传文件的属性
  FileName.Text = strFileName;
   /// 获得文件名称
  FileType.Text = loFile.PostedFile.ContentType ;
   /// 获得文件类型
  FileLength.Text = (loFile.PostedFile.ContentLength).ToString();
   /// 获得文件长度
  FileUploadForm.Visible = false ;
  AnswerMsg.Visible = true;
   /// 显示上传文件属性
  }
</SCRIPT>
<ASP:panel id="FileUploadForm" visible="true" runat="server">
<form method="post" enctype="multipart/form-data" runat="server" ID="Form1">
<h1>
欢迎使用ASP.NET页面实现文件上传</h1>
请选择上传到服务器的文件名称: <input id="loFile" type="file" runat="server" NAME="loFile">
<br>
文件名: <input type="text" id="fname" runat="server" NAME="fname"><br>
请输入上传到服务器的目录名称: <input id="dir" type="text" runat="server" NAME="dir">
<br>说明:
<asp:TextBox ID="define" TextMode="MultiLine" Columns="30" Runat="server"/><br>
<input type="submit" value="开始上传" OnServerClick="UploadFile_Clicked" runat="server" ID="Submit1" NAME="Submit1">
<br>
</form>
</ASP:panel>
<ASP:panel id="AnswerMsg" visible="false" runat="server">
 谢谢使用ASP.NET页面实现文件上传 <br>
 成功上传 <ASP:label id="FileName" runat="server" /><br>
 文件大小 <asp:label id="FileLength" runat="server" /> 字节 <br>  
文件类型 <asp:label id="FileType" runat="server" /> <br>
<asp:Label ID="define1" Runat="server"/>
<asp:HyperLink id="link" runat="server" />
</ASP:panel>
</BODY>
</html>

...全文
183 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cgmx 2002-12-07
  • 打赏
  • 举报
回复
感谢上面的朋友!

strFileFolder="http:\\files\\";
这样写没问题,而且目录在本例中不是重要点..
cgmx 2002-12-05
  • 打赏
  • 举报
回复
已经设置了的啊!还是刚才的样
csdn_bob 2002-12-05
  • 打赏
  • 举报
回复
看你以前提示,好像是iis中程序没有设置成应用程序所造成的!
cgmx 2002-12-05
  • 打赏
  • 举报
回复
分别试了你们说的
最终结果都一样,出现下列错误:
“/wwwtest”应用程序中的服务器错误。
--------------------------------------------------------------------------------

不支持 URI 格式。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: 不支持 URI 格式。

源错误:

生成此未处理异常的源代码只能在调试模式中进行编译时显示。若要启用该功能,请执行以下步骤之一,然后请求 URL:

1. 在生成错误的文件的顶部添加一个“Debug=true”指令。示例:

<%@ Page Language="C#" Debug="true" %>

或者:

2. 将以下节添加到应用程序的配置文件中:

<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>

请注意,第二种方法将使给定应用程序中的所有文件在调试模式下进行编译。第一种方法只使特定文件在调试模式下进行编译。

重要事项:以调试模式运行应用程序肯定会引起内存/性能系统开销。在部署到产品方案中之前,应该确保应用程序已禁用调试。

堆栈跟踪:


[ArgumentException: 不支持 URI 格式。]
System.IO.Path.GetFullPathInternal(String path) +285
System.IO.Directory.CreateDirectory(String path) +51
ASP.ftp_c_aspx.UploadFile_Clicked(Object Sender, EventArgs e) in http://localhost/wwwtest/ftp_c.aspx:27
System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e)
System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()



ameng_2002 2002-12-05
  • 打赏
  • 举报
回复
strFileFolder="http:\\files\\"; 这样写是不是有问题?
Directory.CreateDirectory ( strFileFolder ) ;
strFileFolder是不是应该是物理地址?
expertwk 2002-12-05
  • 打赏
  • 举报
回复
程序绝对没有问题的!
我在目前自己的项目中也碰到同样的问题!在本地计算机上上传非常正常,到了其他的计算机在访问我的计算机,就出问题
现在是解决了,不过不知道原因,建议你
1。设置上传文件需要保存的路径,给予足够的权限。在IIS中设置的
2。删除已经上传的所有东西,如果是存在数据库里,也全部清空!
因为我发现,已经拟在本地上传的一个东西,如果在其他电脑上再上传同一个问东西,就出现这种错误!
其实毛病的原因不知道,只有祝你好运了
csdn_bob 2002-12-05
  • 打赏
  • 举报
回复
你换个别的程序试试,说不定是系统的问题!
csdn_bob 2002-12-04
  • 打赏
  • 举报
回复
to 楼上的兄弟:设置为"On"吧!
missRainbowAgain 2002-12-04
  • 打赏
  • 举报
回复
你先把<customErrors> 标记的“mode”属性设置为“Off”,
看看是什么错误先!
csdn_bob 2002-12-04
  • 打赏
  • 举报
回复
你要debug="true"这样就可以看到是什么原因引发异常!是什么异常呀!这样只能是guess,谁也不知道真正的原因!
mynewpc 2002-12-04
  • 打赏
  • 举报
回复
你必须设置目录的读写权限.

62,041

社区成员

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

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

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

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