ASP.NET File Upload

独自空忆成欢 提交于 2019-11-27 09:08:06
Ramakrishnan

1.Create Uploadfile.aspx

2.Embed the Uploadfile.aspx in Your Html page using iframe

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Uploadfile.aspx.cs" Inherits="Uploadfile" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>File Upload Control</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:FileUpload  runat="server" ID="fuSample" />
        <asp:Button  runat="server" ID="btnUpload" Text="Upload" 
                onclick="btnUpload_Click" />
                <asp:Label runat="server" ID="lblMessage" Text=""></asp:Label>
        </div>
        </form>
    </body>
    </html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Uploadfile : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        //Files is folder Name
        fuSample.SaveAs(Server.MapPath("Files") + "//" + fuSample.FileName);
        lblMessage.Text = "File Successfully Uploaded";
    }
}

then embed your aspx page in Html as follow,

<iframe height="40" width="700" src="Uploadfile.aspx">
</iframe>

now you can be able to upload your file from html itself,by using UploadFiles.aspx.

Use code similar to this and then write it out to disk (using, say, FileStream)

HttpFileCollection MyFileCollection;
 HttpPostedFile MyFile;
 int FileLen;
 System.IO.Stream MyStream;

 MyFileCollection = Request.Files;
 MyFile = MyFileCollection[0];

 FileLen = MyFile.ContentLength;
 byte[] input = new byte[FileLen];

 // Initialize the stream.
 MyStream = MyFile.InputStream;

 // Read the file into the byte array.
 MyStream.Read(input, 0, FileLen);

http://msdn.microsoft.com/en-us/library/system.web.httppostedfile.inputstream%28VS.71%29.aspx

You can't do it without the <input type=file">

<form action="upload.aspx"> doesn't send a file tells the server where to send the request to.

I made a small test case:

  1. Uploader.aspx markup:

    <form id="form1" runat="server">
    <div>
        <asp:FileUpload runat="server" ID="fuTest" /><br />
        <asp:Button runat="server" ID="btnUpload" Text="Upload" PostBackUrl="~/Uploading/Upload.aspx" />
    </div>
    </form>
    
  2. Codebehind from Upload.aspx:

    protected void Page_Load(object sender, EventArgs e)
    {
        FileUpload fu =  PreviousPage.FindControl("fuTest") as FileUpload;
        if (fu != null)
        {
            int length = fu.PostedFile.ContentLength;
        }
    }
    

The PostBackUrl property of the button posts it to the Upload.aspx page. There you can use the PreviousPage property of the Page class to find the control from the previous page, cast it to FileUpload, and retrieve what you want from it.

namespace A8
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        class Proizvod {
            public string ceo_red, ime, proizvodjac, ram, tip, kamera,slika, ekran,sifra, cena;
            

            public Proizvod(string x) {
                ceo_red = x;
                slika = x.Split(',')[0];
                sifra = x.Split(',')[1];
                ime = x.Split(',')[2];
                proizvodjac = x.Split(',')[3];
                ram = x.Split(',')[4];
                tip = x.Split(',')[5];
                kamera = x.Split(',')[6];
                ekran = x.Split(',')[7];
                cena = x.Split(',')[8];
            }
        
        }
        List<Proizvod> proizvodi = new List<Proizvod>();
        protected void Page_Load(object sender, EventArgs e)
        {
                
            StreamReader sr = new StreamReader(@"F:\dji\A8\A8\TextFile1.txt");

            for (int i = 0; i < 5; i++)
            {
                proizvodi.Add(new Proizvod(sr.ReadLine()));
            }
            for (int i = 0; i < proizvodi.Count; i++)
            {
                bool isti = false;
                for (int j = 0; j < DropDownList1.Items.Count; j++)
                {
                    if (proizvodi[i].proizvodjac == DropDownList1.Items[j].Text) isti = true;
                }
                if (!isti) DropDownList1.Items.Add(proizvodi[i].proizvodjac);

                isti = false;
                for (int j = 0; j < DropDownList2.Items.Count; j++)
                {
                    if (proizvodi[i].ram == DropDownList2.Items[j].Text) isti = true;
                }
                if (!isti) DropDownList2.Items.Add(proizvodi[i].ram);

                isti = false;
                for (int j = 0; j < DropDownList3.Items.Count; j++)
                {
                    if (proizvodi[i].tip == DropDownList3.Items[j].Text) isti = true;
                }
                if (!isti) DropDownList3.Items.Add(proizvodi[i].tip);

                isti = false;
                for (int j = 0; j < DropDownList4.Items.Count; j++)
                {
                    if (proizvodi[i].kamera == DropDownList4.Items[j].Text) isti = true;
                }
                if (!isti) DropDownList4.Items.Add(proizvodi[i].kamera);

                isti = false;
                for (int j = 0; j < DropDownList5.Items.Count; j++)
                {
                    if (proizvodi[i].ekran == DropDownList5.Items[j].Text) isti = true;
                }
                if (!isti) DropDownList5.Items.Add(proizvodi[i].ekran);
            }
            Table1.Visible = false;
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            List<Proizvod> trazeni = new List<Proizvod>();
            for (int i = 0; i < proizvodi.Count; i++)
            {
                if (proizvodi[i].proizvodjac == DropDownList1.Text && proizvodi[i].ram == DropDownList2.Text && proizvodi[i].tip == DropDownList3.Text && proizvodi[i].kamera == DropDownList4.Text && proizvodi[i].ekran == DropDownList5.Text)
                {
                    
                    trazeni.Add(proizvodi[i]);
                }
            }
            for (int i = 0; i < trazeni.Count; i++)
            {
                TableRow tr = new TableRow();
                for (int j = 0; j < 9; j++)
                {
                    TableCell tc = new TableCell();
                    
                    tc.Text = trazeni[i].ceo_red.Split(',')[j];
                    tr.Cells.Add(tc);
                }
                Table1.Rows.Add(tr);
            }
            Table1.Visible = true;
        }
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!