【问题标题】:Upload file directly after browsing it浏览后直接上传文件
【发布时间】:2017-05-04 15:11:09
【问题描述】:

我创建了一个简单的方法,可以在单击按钮时将文件上传到服务器。这种方法在单击按钮时效果很好,但是当用户从他的计算机中选择文件时,我需要直接使其自动上传。关于我怎么做的任何想法? 这是我的asp代码:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate >
       <asp:FileUpload ID="FileUpload1" runat="server" />
       <br/>
       <asp:Label ID="Label1" runat="server"></asp:Label>
       <br/>
       <asp:Button ID="Button1" runat="server" Text="Upload" />
    </ContentTemplate>
    <Triggers>
       <asp:PostBackTrigger ControlID="Button1" />
    </Triggers>
</asp:UpdatePanel>

下面是代码:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String = Server.MapPath("~/UploadedImages/")
        Dim fileOK As Boolean = False
        If FileUpload1.HasFile Then
            Dim fileExtension As String
            fileExtension = System.IO.Path. _
                GetExtension(FileUpload1.FileName).ToLower()
            Dim allowedExtensions As String() = _
                {".jpg", ".jpeg", ".png", ".gif"}
            For i As Integer = 0 To allowedExtensions.Length - 1
                If fileExtension = allowedExtensions(i) Then
                    fileOK = True
                End If
            Next
            If fileOK Then
                Try
                    FileUpload1.PostedFile.SaveAs(path & _
                         FileUpload1.FileName)
                    Label1.Text = "File uploaded!"
                Catch ex As Exception
                    Label1.Text = "File could not be uploaded."
                End Try
            Else
                Label1.Text = "Cannot accept files of this type."
            End If
        End If
    End Sub

【问题讨论】:

  • here处理onchange和sumit。

标签: asp.net vb.net file-upload


【解决方案1】:

首先,向 aspx 页面添加一个虚拟的 LinkBut​​ton。将 Text 留空,以便用户看不到它,但它确实存在于 HTML 中。

<asp:FileUpload ID="FileUpload1" runat="server" />

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>

然后在后面的代码中为 FileUpload 控件添加一个 javascript 侦听器,该侦听器将在发生更改时执行 LinkBut​​ton1 的 PostBack。

protected void Page_Load(object sender, EventArgs e)
{
    FileUpload1.Attributes.Add("onchange", "__doPostBack('" + LinkButton1.UniqueID + "','')");
}

protected void LinkButton1_Click(object sender, EventArgs e)
{
    //handle the file upload
}

VB

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    FileUpload1.Attributes.Add("onchange", ("__doPostBack('"  _
                    + (LinkButton1.UniqueID + "','')")))
End Sub

Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)
    'handle the file upload
End Sub

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 1970-01-01
    • 2011-06-13
    • 2013-09-06
    • 2013-03-18
    • 1970-01-01
    • 2015-01-25
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多