none
My.Computer.Network.UploadFile()上载文件,为何服务器端接收的文件内容为空? RRS feed

答案

  • 您好(韦恩卑鄙) :

    在前面的调试中,接收页用了fileupload控件 ,才产生了空内容的xxx.txt的文件,去掉fileupload控件后出现下面的错误;我认为是

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            My.Computer.Network.UploadFile("e:\xxx.txt", "http://172.16.119.222/asp/ts/testb1.aspx")

        End Sub

    没有生效.敬请您给予分析,谢谢!

    “/asp”应用程序中的服务器错误。

    索引超出范围。必须为非负值并小于集合大小。
    参数名: index

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

    异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
    参数名: index

    源错误:

    行 4:  
    行 5:      Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    行 6:          Me.Request.Files(0).SaveAs("e:\asp\xxx.txt")
    行 7:      End Sub
    行 8:  End Class

    源文件: E:\ASP\ts\testb1.aspx.vb    行: 6

    堆栈跟踪:

    [ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
    参数名: index]
       System.Collections.ArrayList.get_Item(Int32 index) +2880797
       System.Collections.Specialized.NameObjectCollectionBase.BaseGet(Int32 index) +10
       System.Web.HttpFileCollection.Get(Int32 index) +5
       System.Web.HttpFileCollection.get_Item(Int32 index) +4
       ts_testb1.Page_Load(Object sender, EventArgs e) in E:\ASP\ts\testb1.aspx.vb:6
       System.Web.UI.Control.OnLoad(EventArgs e) +99
       System.Web.UI.Control.LoadRecursive() +47
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
    

    2008年12月29日 1:00

全部回复

  • 你好,
    你这行代码什么意思,看不懂。
    Code Snippet

    My.Computer.Network.UploadFile("c:\abc.doc", "http://172.16.119.222/Default.aspx")

    ASP.NET中这种写法没见到过。

    2008年12月24日 2:15
  •  笨手 写:
    在客户端执行 My.Computer.Network.UploadFile("c:\abc.doc", "http://172.16.119.222/Default.aspx"),无错信息,但在服务器端无接收文件,不知是否与服务器的安全设置有关,请高人指点.

     

     

    原来你已经找到了  my.computer.xxxxxxx  快捷方法

     

    这已经不是socket连接  而是 http  multi post了

     

    在服务端  可以用这种方式接收文件

    Code Snippet

     

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Me.Request.Files(0).SaveAs("c:\aaa.xxx")

    End Sub

     

     

    2008年12月24日 2:27
  • 你好,
    好像你前面有一个类似的问题。最好不要用doc做测试,而是用txt文档。否则就算你在web端得到了数据,也是乱码的。
    这个是前面那个问题的地址。
    http://forums.microsoft.com/china/showpost.aspx?postid=4260399&siteid=15
    2008年12月24日 3:22
  • 需要注意以下 你的接收叶面

    一定要有

     

    <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

     

     

    不然的话  会因为验证你上传文本和doc文件里面有没有敏感的安全字符而导致失败

    2008年12月24日 3:39
  • 您好(韦恩卑鄙):

    将实例修改为AutoEventWireup="true" ValidateRequest="false"后,服务器端获得的文件xxx.txt其内容仍然为空,不知原因何在?再次感谢您的回复!
    2008年12月25日 8:49
  • 如果你的文件大小超过4m 也可能因为IIS的最大上传size设置的太小了

    2008年12月25日 14:18
  • 您好(韦恩卑鄙):

    我上载的xxx.text的内容相当的小只有"123",IIS的最大上传size如何设置?谢谢您的回复!
    2008年12月26日 1:14
  •  

    http://www.whedu.net/cms/data/html/doc/2004-07/19/31718/index.html

     

     

    跟你你说的状况实在很难判断  能把你的接收源代码po上来么

    2008年12月26日 4:00
  • 您好(韦恩卑鄙) :

    在前面的调试中,接收页用了fileupload控件 ,才产生了空内容的xxx.txt的文件,去掉fileupload控件后出现下面的错误;我认为是

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            My.Computer.Network.UploadFile("e:\xxx.txt", "http://172.16.119.222/asp/ts/testb1.aspx")

        End Sub

    没有生效.敬请您给予分析,谢谢!

    “/asp”应用程序中的服务器错误。

    索引超出范围。必须为非负值并小于集合大小。
    参数名: index

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

    异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
    参数名: index

    源错误:

    行 4:  
    行 5:      Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    行 6:          Me.Request.Files(0).SaveAs("e:\asp\xxx.txt")
    行 7:      End Sub
    行 8:  End Class

    源文件: E:\ASP\ts\testb1.aspx.vb    行: 6

    堆栈跟踪:

    [ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
    参数名: index]
       System.Collections.ArrayList.get_Item(Int32 index) +2880797
       System.Collections.Specialized.NameObjectCollectionBase.BaseGet(Int32 index) +10
       System.Web.HttpFileCollection.Get(Int32 index) +5
       System.Web.HttpFileCollection.get_Item(Int32 index) +4
       ts_testb1.Page_Load(Object sender, EventArgs e) in E:\ASP\ts\testb1.aspx.vb:6
       System.Web.UI.Control.OnLoad(EventArgs e) +99
       System.Web.UI.Control.LoadRecursive() +47
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
    

    2008年12月29日 1:00