如何使用asp.net 4.0从客户端获取多个文件

时间:2019-05-09 06:20:37

标签: c#-4.0 file-upload asp.net-4.0

我有一封邮件表格,其中包含一些带有多个文件的字段。我怎么得到所有字段的文本。但无法获取从客户端上传的文件。在这里,我使用jquery多文件上传插件。但是在调试方面,我总是从此上传控件获取HasFile false。有关更多详细信息,我提供此代码:

HTML标记:

<tr>
                                            <td style="width: 20%">Attach Files </td>
                                            <td>
                                                <asp:FileUpload ID="file_upload" runat="server" AllowMultiple="true" CssClass="multi" />
                                                <br />
                                                <asp:GridView ID="gv_file_list" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" GridLines="None">
                                                    <Columns>
                                                        <asp:TemplateField>
                                                            <ItemTemplate>
                                                                <asp:Button ID="Button1" runat="server" BackColor="White" BorderColor="White" BorderStyle="None" CommandArgument='<%# Eval("Id") %>' CommandName="DeleteFile" CssClass="theme-font" Font-Underline="True" Text="x" />
                                                            </ItemTemplate>
                                                        </asp:TemplateField>
                                                        <asp:TemplateField>
                                                            <ItemTemplate>
                                                                <asp:Label ID="Label14" runat="server" Text='<%# Bind("File_Title") %>'></asp:Label>
                                                            </ItemTemplate>
                                                        </asp:TemplateField>
                                                    </Columns>
                                                </asp:GridView>
                                                <br />
                                                <asp:Label ID="lblMessage" runat="server" />
                                            </td>
                                        </tr> 

这是我获取上传文件的代码:

bool FileAttached;
        if (file_upload.HasFile) // which always returns false
        {
            FileAttached = true;
        }
        else
        {
            FileAttached = false;
        }
 myEmail.Body = CKEditor1.Text.Trim();
                    myEmail.IsFileAttached = FileAttached;
                    myEmail.SentDateTime = DateTime.Now;
HttpFileCollection fileCollection = Request.Files;
                    double tot_file_size = 0;
                    for (int i = 0; i < fileCollection.Count; i++)
                    {
                        File myFile = new File();
                        HttpPostedFile uploadfile = fileCollection[i];
                        string fileTitle = Path.GetFileName(uploadfile.FileName);
                        string fileName = DateTime.Now.ToString("ddMMyyyy_HHmmss");
                        string fileType = System.IO.Path.GetExtension(fileTitle).ToString().ToLower();
                        myFile.Email_Id = newId;
                        myFile.File_Title = fileTitle;
                        myFile.File_name = fileName;
                        myFile.File_ext = fileType;
                        double file_size = int.Parse(uploadfile.ContentLength.ToString()) / 1024;
                        tot_file_size += file_size;
                        myFile.File_Size = file_size;
                        if (uploadfile.ContentLength > 0)
                        {
                            uploadfile.SaveAs(Server.MapPath("~/EmailFiles/") + fileName + fileType);
                            db.Files.InsertOnSubmit(myFile);
                            db.SubmitChanges();
                            file_names.Add(fileName + fileType);
                        }
                    }

这里出了什么问题。请帮助我。

0 个答案:

没有答案