繁体   English   中英

单个文件上传asp.net C#

[英]indiviual files upload asp.net c#

当我单击链接按钮以添加更多文件上传时,则仅添加1 ..表示1个文件上传已可见,而1单击链接按钮时显示..

但是当我再次单击链接按钮以添加更多内容时,则不显示..

我尝试这个

好吧,我这样做

<form id="form1" runat="server">

    <asp:FileUpload ID="FileUpload1" runat="server" />
    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">upload</asp:LinkButton><br />
    <asp:Panel ID="Panel1" runat="server"></asp:Panel>
    <asp:Button ID="Button1" runat="server" Text="submit"  OnClick="Button1_Click" />
 </form>

假设有文件上传控制..当我们通过单击浏览选择文件,然后单击上传,然后显示扩展名即abc.doc的文件名时...然后,当我们再次使用相同文件上传并单击浏览并选择时然后将显示另一个文件,即xyz.pdf ..,所以有两个文件abc.doc和xyz.doc ..所以这是我们想做的..我想上传文件并显示这些上传的文件

更新

为此,我尝试这个

    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        fileuploadd(FileUpload1.FileName);

    }

    public void fileuploadd(string filename)
    {
        try
        {
            HttpFileCollection hfc = Request.Files;
            for (int i = 0; i < hfc.Count; i++)
            {
                HttpPostedFile hpf = hfc[i];
                if (hpf.ContentLength > 0)
                {

                    SMSEntities s = new SMSEntities();
                    uploaded_file u = new uploaded_file();
                    {
                        u.fileupload = filename;


                    }
                    s.uploaded_file.Add(u);
                    s.SaveChanges();
                }
                //hpf.SaveAs(Server.MapPath("upload") + "\\" + System.IO.Path.GetFileName(hpf.FileName));
                Response.Write("<b>File: </b>" + hpf.FileName + " <b>Size:</b> " + hpf.ContentLength + " <b>Type:</b> " + hpf.ContentType + " Uploaded Successfully <br/>");


            }

        }
        catch (DbEntityValidationException e)
        {
            foreach (var eve in e.EntityValidationErrors)
            {
                Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                    eve.Entry.Entity.GetType().Name, eve.Entry.State);
                foreach (var ve in eve.ValidationErrors)
                {
                    Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                       ve.PropertyName, ve.ErrorMessage);
               }
            }
            throw;
        }

    }

因此,当我选择文件并单击上载时,文件名将显示..但是当我再次选择文件并单击上载时,第一个文件名将消失,第二个文件名将显示在我想要的两个位置。

所以我如何显示两个文件名...,然后单击提交,然后将记录文件分别插入表中,我这样做了,但一次都没有两个文件名显示。

在您的.aspx上创建FileUpload控件,例如:

<asp:FileUpload runat="server" ID="UploadImages" AllowMultiple="true" />

然后在您的代码后面:

protected void uploadFile_Click(object sender, EventArgs e)
{
   if (UploadImages.HasFiles)
   {
       foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
       {
           uploadedFile.SaveAs(System.IO.Path.Combine(Server.MapPath("~/Images/"),
           uploadedFile.FileName)); listofuploadedfiles.Text += String.Format("{0}<br />", uploadedFile.FileName);
       }
   }
} 

多文件上传

HI超级用户以前我也遇到过同样的问题。 我实际上所做的是,我创建了5个文件控件,例如1)FileUpload1 2)FileUpload2 3)FileUpload3 4)FileUpload4 5)FileUpload5而且我有4个在加载时处于隐藏状态。 在单击第一时,我显示第二个,在单击第二时,我显示第三个,依此类推...

在控制器/方法中,我正在检查文件控件是否不为null,然后通过获取文件上传数组来进行正常的文件上传过程。

     <div id="flOther" runat="server">
    <div id="fileOtherUploadarea">
    <asp:FileUpload ID="flOtherUPL" runat="server" />
    </div>
     <input style="width: 20px; border: 0px none; background-color:transparent;" id="btnOtherAddMoreFiles" type="button"     onclick="AddOtherMoreImages();" class="icon-plus-sign" />|
   <asp:LinkButton ID="lnkOtherUpload" OnCommand="btnLnk_UploadOtherFiles" CommandArgument='<%# Eval("ID")   %>   'runat="server">Upload Files</asp:LinkButton>
    </div>

    <script language="javascript" type="text/javascript">

        function AddMoreImages() {
            if (!document.getElementById && !document.createElement)
                return false;
            var fileUploadarea = document.getElementById("fileUploadarea");
            if (!fileUploadarea)
                return false;
            var newLine = document.createElement("br");
            fileUploadarea.appendChild(newLine);
            var newFile = document.createElement("input");
            newFile.type = "file";
            newFile.setAttribute("class", "fileUpload");

            if (!AddMoreImages.lastAssignedId)
                AddMoreImages.lastAssignedId = 100;
            newFile.setAttribute("id", "FileUpload" + AddMoreImages.lastAssignedId);
            newFile.setAttribute("name", "FileUpload" + AddMoreImages.lastAssignedId);
            var div = document.createElement("div");
            div.appendChild(newFile);
            div.setAttribute("id", "div" + AddMoreImages.lastAssignedId);
            fileUploadarea.appendChild(div);
            AddMoreImages.lastAssignedId++;       }   

    </script>




protected void btnLnk_UploadOtherFiles(object sender, CommandEventArgs e)
    {

    int ID;



    try
    {
        if (!String.IsNullOrEmpty(Convert.ToString(e.CommandArgument)))
        {
            ID = Convert.ToInt32(e.CommandArgument);

            HttpFileCollection hfc = Request.Files;
            for (int i = 0; i < hfc.Count; i++)
            {
                HttpPostedFile hpf = hfc[i];
                if (hpf.ContentLength > 0)
                {
                    string fileExtension = System.IO.Path.GetExtension(hpf.FileName);
                    if (ValidExtesion(fileExtension))
                    {
                        int MaxSizeAllowed = Convert.ToInt32(ConfigurationManager.AppSettings["MaxFileSize"]);
                        if (hpf.ContentLength < MaxSizeAllowed)
                        {
                            int lastIndex = Convert.ToInt32(hpf.FileName.LastIndexOf("\\"));
                            string FileName = DateTime.Now.Millisecond + hpf.FileName.Substring(lastIndex + 1);
                            string FileName1 = hpf.FileName.Substring(lastIndex + 1);
                            FileName = FileName.Replace(" ", "");

                            StringBuilder AncTag = new StringBuilder();
                            AncTag = AncTag.Append("<a href='Attachments/AMT/'" + FileName + "' target='_blank'>'" + FileName1 + "' </a>");
                            string strAncTag = AncTag.ToString();
                            strAncTag = strAncTag.Replace("'", "");
                            hpf.SaveAs(AppDomain.CurrentDomain.BaseDirectory + "Attachments/AMT/" + FileName);
                            obj.UploadOtherFiles_ProblemDescription(ID, strAncTag);
                        }
                        else
                        {

                        }
                    }
                    else
                    {

                    }
                }
            }


        }
    }
    catch (Exception ex)
    {
        ErrorLog objER = new ErrorLog(ex);
    }
    finally
    {

        obj = null;
        grdPDC.EditIndex = -1;

    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM