Avatar billede gadebarnet Nybegynder
10. juli 2005 - 08:33 Der er 9 kommentarer

upload via asp.net men fra asp

JEg har nu prøvet i et stykke tid at lave noget uplaod noget, hvor der er 1 felt til filen og et felt jeg gerne vil have med i min database, men jeg kan bare ikke få det til at virke, så er der nogle der har en ide. JEg ville gerne sådan at selv upload'et køre via asp.net da jeg der har mulighed for at uploade over 50 MB...

hjælp-
Avatar billede snepnet Nybegynder
10. juli 2005 - 10:16 #1
hej :o)

jeg tror ikke jeg er helt med - hvor kommer asp'en ind i billedet, og hvad er det du ikke kan få til at fungere ordentligt?

mvh
Avatar billede gadebarnet Nybegynder
10. juli 2005 - 10:20 #2
Jeg skal bruge noget upload via asp.net .

JEg har en masse ASP som jeg ikke gidder at lave om til .net...

Så jeg vil gerne kunne sende min upload form fra asp til asp.net, som så returnere til asp


Er det noget du kan hjælpe med?

Smider gerne nogle flere point.
Avatar billede snepnet Nybegynder
10. juli 2005 - 10:47 #3
hej igen :o)

hvad er årsagen til at du mener at have andre muligheder for filstørrelser hvis det laves i asp.net fremfor asp?

og... hvad er det du har prøvet et stykke tid, og ikke kan få til at virke? (kan du eventuelt vise noget kode du har prøvet?)

jeg kan hjælpe med asp.net, men betydeligt mindre omkring asp, men hvis du har en større eksisterende form, er der nok ikke noget i vejen for at du lægger en iframe i den, der viser en aspx-form som du bruger til at give folk mulighed for at uploade filer.

mvh
Avatar billede gadebarnet Nybegynder
10. juli 2005 - 11:12 #4
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Drawing" %>
 
<script runat=server>

private void myUploadCode(Object sender, EventArgs e) {
    string strFileName;
    if(upload_file.PostedFile.ContentLength < (10000*1024)) { //Er fil over 10000kb?

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

            if(!File.Exists(Server.MapPath("images/" + strFileName))) {

                    int MaxSize = 125;
                    try
                    {
                            System.Drawing.Image image = new System.Drawing.Bitmap(upload_file.PostedFile.InputStream);
                            upload_file.PostedFile.SaveAs(Server.MapPath("images/" + strFileName));
                            System.Drawing.Bitmap bOrg = (System.Drawing.Bitmap)image;
                            System.Drawing.Imaging.ImageFormat format = image.RawFormat;
                 
                            if(image.Width>MaxSize || image.Height>MaxSize) {
                                Bitmap b = Resize(bOrg,MaxSize,MaxSize);
                                b.Save(Server.MapPath("thumbs/" + strFileName ),format);
                            }
                            else
                            { //Gem original da billede allerede er mindre end 100px
                                    upload_file.PostedFile.SaveAs(Server.MapPath("thumbs/" + strFileName));
                            }
                            //Response.Write("<p>File <b><a href=\"images/" + strFileName + "\">" + strFileName + "</b> has been uploaded</b>");
                            //Response.Write("<a href=\"images/" + strFileName + "\"><img src=\"thumbs/" + strFileName + "\">");
                    }
                    catch
                    {
                        Response.Write("Der skete en fejl ved processering af billedet");       
                    }
          }
          else
          {
                Response.Write("Filnavn eksisterer allerede");
          }

        }
        else {
                //Fil var for stor
                Response.Write("Billedet er over 10000kb");
        }
}
private static Bitmap Resize(Bitmap b, int MaxHeight, int MaxWidth)
{
        int nWidth = b.Width;
        int nHeight = b.Height;
        if(nHeight>MaxHeight) {
                nWidth = (int)((((double)b.Width)/((double)b.Height))*((double)MaxHeight));               
                nHeight = MaxHeight;
        }
        if(nWidth>MaxWidth) {
                nWidth=MaxWidth;
                nHeight = (int)((((double)b.Height)/((double)b.Width))*((double)MaxWidth));
        }
        Bitmap bTemp = (Bitmap)b.Clone();
        b = new Bitmap(nWidth, nHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
        double nXFactor = (double)bTemp.Width/(double)nWidth;
        double nYFactor = (double)bTemp.Height/(double)nHeight;
        for (int x = 0; x < b.Width; ++x)
                for (int y = 0; y < b.Height; ++y)
                        b.SetPixel(x, y, bTemp.GetPixel((int)(Math.Floor(x * nXFactor)),
                                (int)(Math.Floor(y * nYFactor))));
        return b;
}

</script>

<html><body>

<form enctype="multipart/form-data" runat="server">


<asp:PlaceHolder id="phEdit" runat="server">
    <p>Select image to upload:</p>
    <input id="upload_file" type="file" runat="server" /><br><br>
    <asp:button Text="Upload File" onClick="myUploadCode" runat="server" />
</asp:PlaceHolder>
</form>

</body></html>



---------


Det er min asp.net code... Den virker fint, men jeg vil gerne kunne sende formen fra en anden fil, og så ved endt upload sende til en anden fil...

Vil også kunne sende en variabel med der bestemmer sted for uplaod...


forstår du?
Avatar billede snepnet Nybegynder
10. juli 2005 - 11:38 #5
hmmm.... måske (jeg tror det :o)

parameteren kan du klare i din querystring, så det er der ikke så meget ballade med... pak eventuelt parameteren ind i en property på i den kode du har vist (så er den lidt snildere at tilgå de steder du nu skal bruge den):

protected string SomeQStringVariable
{
  get{return Request.QueryString["SomeQStringVariable"];}
}

mht. til det med at udføre ovenstående fra en anden form... har du så prøvet med at vise den i en iframe - er det ikke bare det der skal til?

mvh
Avatar billede gadebarnet Nybegynder
10. juli 2005 - 11:42 #6
Problemet er at jeg skal have et tekst felt med foruden min fil... Og jeg kan ikke få det til at virke.... Hvis du kan bakse noget sammen, smider jeg gerne nogle flere point...

Teksten i det tekst felt skal i database, og det er mit problem... JEg er asp classic mand og ikke .net
Avatar billede snepnet Nybegynder
10. juli 2005 - 11:49 #7
du kan starte med at sætte tekstfeltet ind her :

<asp:PlaceHolder id="phEdit" runat="server">
    <p>Select image to upload:</p>
    <input id="upload_file" type="file" runat="server" /><br><br>
    <br>And some text
    <asp:TextBox id="txtSomeText" runat="server"></asp:TextBox>
    <asp:button Text="Upload File" onClick="myUploadCode" runat="server" />
</asp:PlaceHolder>

din myUploadCode skal så bare udvides med også at gemme teksten, så det bliver jo så noget i denne stil (nu ved jeg jo ikke hvad du vil gøre med teksten):

...
string txtInput = txtSomeText.Text; // her får du teksten fra tekstboksen
DoSomethingWithInput(txtInput);
...

mvh
Avatar billede snepnet Nybegynder
07. august 2005 - 00:58 #8
hvordan går det her?
(du får et svar her, hvis alt skulle være ok)
mvh
Avatar billede snepnet Nybegynder
07. september 2005 - 17:09 #9
hallo?
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
Kurser inden for grundlæggende programmering

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