Avatar billede bcool Nybegynder
29. juli 2005 - 12:01 Der er 5 kommentarer

Uploade fil med C#

Hej jeg har et script i VB til at kunne uploade en fil med, men vil gerne have det omskrevet/eller få et helt nyt så det bliver i asp.net med C# i stedet for.
Jeg vil yderligere gerne have at filerne som bliver uploadet, ryger i en mappe som hedder "images" som findes i roden på webhotellet.
Scriptet virker fint, vil som sagt gerne bare have det i C# istedet for, samt at den uploader i en anden mappe, end det scriptet ligger i.
Scriptet er fundet her på siden er ser således ud

<script language="VB" runat=server>
Sub myUploadCode(Sender as Object, E as EventArgs)
  Dim strFileName AS String
 
  '---- her finder vi filens navn ved at lede baglæns efter den første forekomst af \ (backslash) ----
  If InStr(upload_file.PostedFile.FileName, "\") > 0 Then
    strFileName = Mid(upload_file.PostedFile.FileName, InStrRev(upload_file.PostedFile.FileName, "\") + 1)
  Else
    strFileName = "ukendt.fil"
  End If
 
  '---- gem filen i den nuværende mappe på webserveren med filnavnet som er gemt i strengen strFileName ----
  upload_file.PostedFile.SaveAs(Server.MapPath(strFileName))

  '---- skriv besked i vores status label, og gør den synlig ----
  statustext.text = "<p>Filen <b>"& strFileName &"</b> er nu uploaded til serveren!"
  statustext.text = statustext.text & "<br><br><a href="""& strFileName &""" target=""_blank"">Klik her for at downloade filen "& strFileName &"</a> (åbner i nyt vindue)"
  statustext.text = statustext.text & "<br><br><a href=""upload.aspx"">Klik her for at uploade en ny fil</a></p>"

  statustext.visible = true
 
  '---- skjul formen ----
  uploadform.visible = false
End Sub
</script>

<html><head>
<title>Upload filer med ASP.NET</title>
</head><body>

<h2>Upload med ASP.NET</h2>

<form enctype="multipart/form-data" runat="server" id="uploadform" visible="true">
  <p>Vælg den fil som skal uploades til serveren:</p>

  <input id="upload_file" type="file" runat="server" /><br><br>
  <asp:button Text="Upload File" onClick="myUploadCode" runat="server" />
</form>

<asp:label id="statustext" visible="false" runat="server" />

</body>
</html>
Avatar billede ullesan Nybegynder
29. juli 2005 - 12:20 #1
string strFileName;
if (InStr(upload_file.PostedFile.FileName, "\\") > 0) {
strFileName = Mid(upload_file.PostedFile.FileName, InStrRev(upload_file.PostedFile.FileName, "\\") + 1);
} else {
strFileName = "ukendt.fil";
}
upload_file.PostedFile.SaveAs(Server.MapPath("images\\" + strFileName));
statustext.text = "<p>Filen <b>" + strFileName + "</b> er nu uploaded til serveren!";
statustext.text = statustext.text + "<br><br><a href=\"" + strFileName + " target=\"_blank\">Klik her for at downloade filen " + strFileName + "</a> (åbner i nyt vindue)";
statustext.text = statustext.text + "<br><br><a href=\"upload.aspx\">Klik her for at uploade en ny fil</a></p>";
statustext.visible = true;
uploadform.visible = false;

måske?

Konverteret med
http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx
Avatar billede bcool Nybegynder
29. juli 2005 - 12:27 #2
Virker ikke.
Jeg er ikke en haj til det her, så umiddelbart vil jeg gerne have skåret ALT ud i pap så jeg også kan fatte det :)

Men der sker hvertfald fejl når jeg indsætter det der script i et C# dokument
Avatar billede bcool Nybegynder
29. juli 2005 - 12:29 #3
Dog virker stien til images i det gamle dokument :)
Avatar billede ullesan Nybegynder
29. juli 2005 - 18:00 #4
prøv

<%@ Page Language="C#" %>
<script runat="server">

    void myUploadCode(object Sender, EventArgs E) {
                    string strFileName;

                    if (upload_file.PostedFile.FileName.IndexOf("\\") > -1) {
                        strFileName = upload_file.PostedFile.FileName.Substring(upload_file.PostedFile.FileName.LastIndexOf("\\") + 1);
                    } else {
                        strFileName = "ukendt.fil";
                    }

                    upload_file.PostedFile.SaveAs(Server.MapPath("images\\" + strFileName));

                    statustext.Text = "<p>Filen <b>" + strFileName + "</b> er nu uploaded til serveren!";
                    statustext.Text += "<br><br><a href=\"" + strFileName + " target=\"_blank\">Klik her for at downloade filen " + strFileName + "</a> (åbner i nyt vindue)";
                    statustext.Text += "<br><br><a href=\"upload.aspx\">Klik her for at uploade en ny fil</a></p>";
                    statustext.Visible = true;
    //            uploadform.Visible = false;

                statustext.Text = upload_file.PostedFile.FileName;
                }

    void Button2_Click(object sender, EventArgs e) {

    }

</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
    <title>Upload filer med ASP.NET</title>
</head>
<body>
    <h2>Upload med ASP.NET
    </h2>
    <form id="uploadform" enctype="multipart/form-data" runat="server" visible="true">
        <p>
            Vælg den fil som skal uploades til serveren:
        </p>
        <input id="upload_file" type="file" runat="Server" />
        <br />
        <br />
        <asp:Button id="Button1" onclick="myUploadCode" runat="server" Text="Upload File"></asp:Button>
    </form>
    <asp:Label id="statustext" runat="server" visible="false"></asp:Label>
</body>
</html>

Jeg har testet med VS2003 hvor det virker og med WebMatrix hvor det ikke virker... Hvorfor er jeg ikke helt sikker på, men vil gætte på fordi WebMatrix ikke er helt up2date...
Avatar billede innercitydk Nybegynder
07. oktober 2006 - 12:12 #5
Er det ikke god skik at skrive linket til den post hvor du har snatchet koden?! Eftersom det er et af mine spørgsmål du har taget koden fra!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester