Upload souboru   zodpovězená otázka

ASP.NET WebForms

Nevíte prosím proč se mi nedaří soubor nahrát na web. Chtěl bych vybrat soubor a uložit ho do složky Files na webu.

Zatím se mi daří ukládat jen na pevný disk.

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" Title="Upload" %>

<script runat="server">

    Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If FileUpload1.HasFile Then
            Try
                lblStatus.Text = "Uploading File " + FileUpload1.FileName
                'FileUpload1.SaveAs("C:\\Files\\" + FileUpload1.FileName)
                FileUpload1.SaveAs("~/Files/" + FileUpload1.FileName)
                lblStatus.Text = "Soubor uložen"
            Catch
                lblStatus.Text = "Soubor se nepodařilo uložit"
            End Try
        Else
            lblStatus.Text = "Musíš vybrat soubor"
        End If
    End Sub
</script>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <div class="NadpisStranky">
Upload
</div>
    <asp:Label ID="lblStatus" runat="server" Text="Label"></asp:Label>
  
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:FileUpload ID="FileUpload1" runat="server" Width="217px" />
    
      <br />
    <br />
    
      <asp:Button ID="btnUpload" runat="server" onclick="btnUpload_Click" 
        Text="Upload" />
   </asp:Content>

Předem děkuji za radu :)

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
FileUpload1.SaveAs("~/Files/" + FileUpload1.FileName)

upravit na

FileUpload1.SaveAs(Server.MapPath("~/Files/" & FileUpload1.FileName))

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Super

Pracuje to. Díky :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kód:

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" Title="Upload" %>

<script runat="server">

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs)
If FileUpload1.HasFile Then
Try
lblStatus.Text = "Uploading File " + FileUpload1.FileName
'FileUpload1.SaveAs("C:\\Files\\" + FileUpload1.FileName)
FileUpload1.SaveAs("~/Files/" + FileUpload1.FileName)
lblStatus.Text = "Soubor uložen"
Catch
lblStatus.Text = "Soubor se nepodařilo uložit"
End Try
Else
lblStatus.Text = "Musíš vybrat soubor"
End If
End Sub
</script>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<div class="NadpisStranky">
Upload
</div>
<asp:Label ID="lblStatus" runat="server" Text="Label"></asp:Label>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:FileUpload ID="FileUpload1" runat="server" Width="217px" />

<br />
<br />

<asp:Button ID="btnUpload" runat="server" onclick="btnUpload_Click" 
Text="Upload" />
</asp:Content>

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Bylo by možné ještě mi prosím poradit jak automaticky načíst všechny obrázky v této složce na stránku?

Na úplně jinou page, pojmenuju jí třeba Galerie.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No, nějakou funkcí si musíte vytáhnout seznam souborů s příponou JPG v dané složce. Tato funkce vám vrátí asi celé cesty k souborům na disku webového serveru. Z nich musíte vykrojit jen název souboru a poskládat z něj URL adresu, která se pošle do prohlížeče. Pro vygenerování HTML s obrázky použijete třeba Repeater.

Vypadat to může třeba takto:

Protected Sub Page_Load(sender As Object, e As EventArgs)
    'nachystat seznam pro adresy obrázků
    Dim obrazky As New List(Of String)

    'projít všechny obrázky ve složce Images
    For Each f As String In System.IO.Directory.GetFiles(Server.MapPath("~/Images"), "*.jpg")
        'zjistit název souboru
        Dim name As String = System.IO.Path.GetFileName(f)
        'poskládat URL adresu
        Dim url As String = ResolveClientUrl("~/Images/" & name)
        'přidat ji do seznamu
        obrazky.Add(url)
    Next

    'předat seznam obrázků repeateru
    Repeater1.DataSource = obrazky
    Repeater1.DataBind()
End Sub

A v ASPX části:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <img src="<%#Container.DataItem%>" alt="Obrázek ze složky" />
    </ItemTemplate>
</asp:Repeater>
nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Dobrý den,

jde pomocí nějaké rutiny ASP.NET uploudovat na web server více souborů najednou ?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Víc komponent FileUpload, anebo najít nějakou komerční komponentu, která se tím zabývá a které to řeší nějakou ActiveX nebo jinou komponentou do prohlížeče.

Žádné standardní a obecně použitelné řešení neexistuje.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Našel jsem starý článek kde něco podobného řeší ( asi pod frameworkem 1.0 ) pomocí cyklu .. (http://interval.cz/clanky/vicenasobny-up...

Moc tomu nerozumím jak to tam je myšlené.

je to v principu použitelné ?

Díky

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Našel jsem něco zajímavějšího

http://forum.builder.cz/read.php?31,3118742

a už je mi jasné, že to lze udělat jen na straně klienta

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nějak se mi nedaří rozchodit ten flash stále to hází #2038 error. Nevíte co s tím ? nebo nějakou jinou vyzkoušenou komponentu . Myslím že tohle zajímá dost lidí .Díval jsem se do fóra jak řešit tu chybu http://www.codeproject.com/KB/aspnet/Fla... - ale moudrý z toho nejsem .

Díky moc

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback