Jak mogę zmienić informacje o pliku, w elemencie zarządzania pobieraniem plików Ajax ,Asp.net(VB)?

0

Pytanie

Tworzę pobieranie pliku przeciągania za pomocą formantu pobierania plików Ajax w Asp.net(VB). Chcę pokazać nazwę pliku, zapisanego datę i czas, rozmiar pliku podczas przeciągania na pasek. Co mogę zrobić dla tej konfiguracji? Mógłbym zmienić tekst, aby rozwijanej listy, np.

$(document).ready(function () {

            
            Sys.Extended.UI.Resources.AjaxFileUpload_Pending = "保留中";
            Sys.Extended.UI.Resources.AjaxFileUpload_Remove = "削除";
            Sys.Extended.UI.Resources.AjaxFileUpload_Uploaded = "アップロード済";
            Sys.Extended.UI.Resources.AjaxFileUpload_Uploading = "アップロード中";
            Sys.Extended.UI.Resources.AjaxFileUpload_UploadedPercentage = "アップロード中 {0} %";
            Sys.Extended.UI.Resources.AjaxFileUpload_Upload = "アップロード";

            document.getElementsByClassName
            $(".ajax__fileupload_dropzone").text("ここにファイルをドロップ");

            document.getElementsByClassName
            $(".ajax__fileupload_uploadbutton").text("アップロード");
            
        });

Ale nie wiem, jak zmienić wyświetlanie informacji o pliku.

To moja forma przeciągania i chcę przejść z application/pdf Dla uploaded datetime

enter image description here

ajax asp.net vb.net webforms
2021-11-24 05:46:37
1

Najlepsza odpowiedź

0

Nie można prawdziwie wyświetlać "czas" ładowania do momentu, aż użytkownik nie zacznie.

Można JUŻ zobaczyć rozmiar pliku w nagłówku ekranu, więc po co to potrzebne?

masz:

enter image description here

tak więc, powyżej widzisz nazwę pliku, widzicie rozmiar pliku.

Jednak, dopóki nie zostanie naciśnięty przycisk pobierz, i nie zaczniesz pobierać pliki, nie wiesz jeszcze czas pobierania, prawda?

Tak więc, gdy klikniesz "Pobierz pliki", każdy wybrany plik zostanie załadowany, i po stronie serwera (code behind) masz to:

Protected Sub AjaxFileUpload1_UploadComplete(sender As Object, e As AjaxControlToolkit.AjaxFileUploadEventArgs) Handles AjaxFileUpload1.UploadComplete

    Dim strFileSave As String
    strFileSave = Server.MapPath("~/Content/" & e.FileName)
    AjaxFileUpload1.SaveAs(strFileSave)

    ' now code to add say to a database table of files up-loaded.

    Using conn As New SqlConnection(My.Settings.TEST4)
        Dim strSQL = "INSERT IGNORE INTO MyUpoadFiles (FileName, UpLoadTime, Size, User_id) " &
                     "VALUES (@File, @Time,@Size, @User)"

        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            With cmdSQL.Parameters
                .Add("@File", SqlDbType.NVarChar).Value = e.FileName
                .Add("@Time", SqlDbType.DateTime).Value = Date.Now
                .Add("@Size", SqlDbType.Int).Value = e.FileSize
                .Add("@User", SqlDbType.Int).Value = Membership.GetUser.ProviderUserKey
            End With
            cmdSQL.ExecuteNonQuery()
        End Using
    End Using


End Sub

Teraz, gdy WSZYSTKIE pliki załadowane na stronie serwera nawet zostanie pobrana wszystko, i wtedy będziesz mógł zabrać powyższej listy/tabeli i wyświetlić pobrane pliki wraz z nazwą pliku, rozmiar i czas.

Ale u ciebie naprawdę nie ma możliwości, aby wyświetlić informacje o pliku, na przykład, ile do tego momentu pobrałeś plik, a następnie masz czas, prawda?

Edytuj:

Być może powyższe pomysł nie była do końca jasna. Proponuję, aby był bootloader na stronie.

Tak więc, powiedzmy, pominiemy ten układ:

        <div style="width:40%;padding:25px">
        <ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
            OnClientUploadCompleteAll="MyCompleteAll"  ChunkSize="16384" />

            <asp:Button ID="cmdDone" runat="server" Text="Done" CssClass="btn" ClientIDMode="Static"/>
            <script>
                function MyCompleteAll() {
                    $('#cmdDone').click()
                  }
            </script>
            <asp:GridView ID="Gfiles" runat="server" CssClass="table"></asp:GridView>
        </div>

I zwróć uwagę, jak używamy klienta bok, wszystko zrobione kliknięciem myszy.

Więc teraz mamy to:

enter image description here

Jesteśmy kliknięciu pobierz, a teraz widzimy to:

enter image description here

Teraz musimy (powinniśmy) ukryj przycisk "Gotowe" - mamy możliwość pobrać, klikając na przycisk "Zakończ", aby nas.

Tak, że przycisk ten jest teoretycznie powinna być taka, aby ukryć jej:

 <asp:Button ID="cmdDone" runat="server" Text="Done"
   style="display:none" ClientIDMode="Static"/>

I kod dla tego przycisku taka:

Protected Sub cmdDone_Click(sender As Object, e As EventArgs) Handles cmdDone.Click

    Dim rstFiles As New DataTable
    Using conn As New SqlConnection(My.Settings.TEST4)
        Dim strSQL As String = "select FileName, UpLoadTime, Size, User_id from MyUpLoadFiles"
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            rstFiles.Load(cmdSQL.ExecuteReader)
        End Using
    End Using

    Gfiles.DataSource = rstFiles
    Gfiles.DataBind()

    ' hide up-loader
    AjaxFileUpload1.Visible = False
End Sub
2021-11-26 04:01:16

Albercie, dziękuję ci za twoją odpowiedź. Nadal nie mogę pracować nad tym elementem, bo muszę zająć się innym projektem, ale spróbuję odpowiedzieć na pytanie, jak tylko będę mógł. Twoja odpowiedź naprawdę wskazał na mój projekt. Dziękuję ci bardzo. Mnie bardzo ratujesz.
Chang

Witam, próbowałem z kodem , i gdy nacisnę przycisk pobierania, dane mogą być prezentowane w tabeli . Następnie zrobiłem polecenie select i zamontowałem w datatable, ale moje pojęcie siatki nie może być wyświetlany w pełni i nie скрывало polu ajaxfileupload. Wykonałem debugowanie, i w moim widoku siatki były dane z mojej tabeli BAZY danych.
Chang

Cóż, kiedy ładujemy pliki, które zostały dodane w tej tabeli. ale kiedy WSZYSTKIE pliki (lub, być może wybrałeś tylko jeden plik) pobrane, mamy przycisk "zakończ". Ja, oczywiście, nie chcę, aby użytkownicy musieli nacisnąć przycisk "Zakończ", więc zwrócić uwagę, jak podłączyć KLIENTA stronę "skompilować wszystkie zdarzenia" za pomocą jakiegoś kodu JavaScript, aby nacisnąć ten przycisk, aby nas. Mam na myśli, że do testowania po prostu daj pliku (lub plików) uruchomić. A następnie kliknij na tę jedyną przycisk, który uruchamia się kod, aby teraz przyjąć wartości z tabeli bazy danych i wyświetlić je w tabeli. Jak już wspomniano, trzeba będzie dodać identyfikator użytkownika w tej tabeli.
Albert D. Kallal

Dlatego nie chciałem, aby użytkownicy musieli naciskać ten przycisk, kiedy to zrobić - oto, co sprawia, że niewielka ilość JavaScript - myślałem, że masz jQuery, dostępny na tej stronie (nie tak czy co????). I jak tylko zobaczysz, że to działa, schowamy ten przycisk "zakończ". Ale, jeśli nie, podłącz ten js-kod, aby nacisnąć ten przycisk (tak JAK u nas MUSI BYĆ pełna opinia!!! - MUSISZ odzyskać ten post. Nie możesz umieścić kod siatki w przypadku pobierania pliku ajax po stronie serwera-NALEŻY nacisnąć przycisk, aby zwrotnej. Dlatego postępuj zgodnie z powyższym układzie z kodem js, aby nacisnąć przycisk.
Albert D. Kallal

Należy zwrócić uwagę powyższe, jak kod do usuwania siatki znajduje się przycisk "Zakończ", po kliknięciu przycisku "Zakończ". Więc, żeby było jasne, nie możemy umieścić kod siatki ani w jedno z wydarzeń zarządzania pobraniem pliku ajax. Potrzebna nam ta oddzielny przycisk. Do testów wystarczy nacisnąć przycisk "Samolot Jane" na stronie internetowej. Po zakończeniu pobierania kliknij ten przycisk, aby uruchomić kod siatki wyświetlania. Jak tylko zacznę to pracować, a następnie dodać powyższy kod js do automatycznego naciśnięciu tego przycisku. A następnie dodaj styl "wyświetlanie:nie", aby ukryć ten przycisk od użytkownika.
Albert D. Kallal

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................